C struct (strutture)

In questo tutorial, imparerai a conoscere i tipi di struttura nella programmazione C. Imparerai a definire e utilizzare le strutture con l'aiuto di esempi.

Nella programmazione C, una struttura (o struttura) è una raccolta di variabili (possono essere di diversi tipi) sotto un unico nome.

Come definire le strutture?

Prima di poter creare variabili di struttura, è necessario definirne il tipo di dati. Per definire una struttura, structviene utilizzata la parola chiave.

Sintassi di struct

 struct structureName (dataType membro1; dataType membro2;…); 

Ecco un esempio:

 struct Person (char name (50); int citNo; float salary;); 

Qui struct Personviene definito un tipo derivato . Ora puoi creare variabili di questo tipo.

Crea variabili struct

Quando viene dichiarato un tipo di struttura, non viene allocata alcuna memoria o archiviazione. Per allocare la memoria di un dato tipo di struttura e lavorarci sopra, dobbiamo creare variabili.

Ecco come creiamo le variabili di struttura:

struct Person (char name (50); int citNo; float salary;); int main () (struct Person person1, person2, p (20); return 0;)

Un altro modo per creare una variabile struct è:

 struct Person (char name (50); int citNo; float salary;) person1, person2, p (20); 

In entrambi i casi, struct Personvengono create due variabili persona1, persona2 e una variabile di matrice p con 20 elementi di tipo .

Accedi ai membri di una struttura

Esistono due tipi di operatori utilizzati per accedere ai membri di una struttura.

  1. . - Operatore membro
  2. -> - Operatore puntatore struttura (verrà discusso nel prossimo tutorial)

Supponi di voler accedere allo stipendio di person2. Ecco come puoi farlo.

 persona2.stipendio

Esempio: aggiungi due distanze

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Produzione

 1a distanza Immettere piedi: 12 Immettere pollici: 7,9 2a distanza Immettere piedi: 2 Immettere pollici: 9,8 Somma delle distanze = 15'-5,7 "

Keyword typedef

Usiamo la typedefparola chiave per creare un nome alias per i tipi di dati. È comunemente usato con le strutture per semplificare la sintassi della dichiarazione delle variabili.

Questo codice

struct Distanza (int piedi; float pollici;); int main () (struct Distanza d1, d2;)

è equivalente a

typedef struct Distanza (int piedi; float pollici;) distanze; int main () (distanze d1, d2;)

Strutture annidate

È possibile creare strutture all'interno di una struttura nella programmazione C. Per esempio,

struct complex (int imag; float real;); struct numero (struct complex comp; int interi;) num1, num2;

Supponi di voler impostare l'immag della variabile num2 su 11. Ecco come puoi farlo:

 num2.comp.imag = 11; 

Perché gli struct in C?

Supponi di voler memorizzare le informazioni su una persona: il suo nome, numero di cittadinanza e stipendio. È possibile creare diverse variabili nome, citNo e stipendio per memorizzare queste informazioni.

E se hai bisogno di memorizzare le informazioni di più di una persona? Ora, è necessario creare variabili diverse per ogni informazione per persona: nome1, citNo1, salary1, nome2, citNo2, salary2, ecc.

Un approccio migliore sarebbe quello di avere una raccolta di tutte le informazioni correlate sotto un'unica Personstruttura del nome e usarla per ogni persona.

Altro su struct

  • Strutture e suggerimenti
  • Passaggio di strutture a una funzione

Articoli interessanti...