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, struct
viene 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 Person
viene 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 Person
vengono 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.
.
- Operatore membro->
- 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 typedef
parola 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 Person
struttura del nome e usarla per ogni persona.
Altro su struct
- Strutture e suggerimenti
- Passaggio di strutture a una funzione