C struct (Structures)

Dans ce didacticiel, vous découvrirez les types de structure dans la programmation C. Vous apprendrez à définir et à utiliser des structures à l'aide d'exemples.

En programmation C, une structure (ou structure) est une collection de variables (pouvant être de différents types) sous un seul nom.

Comment définir les structures?

Avant de pouvoir créer des variables de structure, vous devez définir son type de données. Pour définir une structure, le structmot clé est utilisé.

Syntaxe de struct

 struct structureName (dataType membre1; dataType membre2;…); 

Voici un exemple:

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

Ici, un type dérivé struct Personest défini. Maintenant, vous pouvez créer des variables de ce type.

Créer des variables de structure

Lorsqu'un type struct est déclaré, aucun stockage ou mémoire n'est alloué. Pour allouer de la mémoire d'un type de structure donné et travailler avec elle, nous devons créer des variables.

Voici comment nous créons des variables de structure:

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

Une autre façon de créer une variable struct est:

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

Dans les deux cas, deux variables person1, person2 et une variable de tableau p ayant 20 éléments de type struct Personsont créées.

Accéder aux membres d'une structure

Il existe deux types d'opérateurs utilisés pour accéder aux membres d'une structure.

  1. . - Membre opérateur
  2. -> - Opérateur de pointeur de structure (sera discuté dans le prochain tutoriel)

Supposons que vous souhaitiez accéder au salaire de person2. Voici comment vous pouvez le faire.

 person2.salaire

Exemple: ajouter deux distances

 // 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; )

Production

 1ère distance Entrez les pieds: 12 Entrez les pouces: 7,9 2e distance Entrez les pieds: 2 Entrez les pouces: 9,8 Somme des distances = 15'-5.7 "

Mot-clé typedef

Nous utilisons le typedefmot - clé pour créer un nom d'alias pour les types de données. Il est couramment utilisé avec des structures pour simplifier la syntaxe de déclaration des variables.

Ce code

struct Distance (int pieds; float inch;); int main () (struct Distance d1, d2;)

est équivalent à

typedef struct Distance (int pieds; float inch;) distances; int main () (distances d1, d2;)

Structures imbriquées

Vous pouvez créer des structures au sein d'une structure en programmation C. Par exemple,

struct complex (int imag; float réel;); struct number (structure complexe comp; int entiers;) num1, num2;

Supposons que vous vouliez définir imag de la variable num2 sur 11. Voici comment vous pouvez le faire:

 num2.comp.imag = 11; 

Pourquoi structs en C?

Supposons que vous souhaitiez stocker des informations sur une personne: son nom, son numéro de citoyenneté et son salaire. Vous pouvez créer différentes variables nom, citNo et salaire pour stocker ces informations.

Que faire si vous avez besoin de stocker des informations sur plusieurs personnes? Maintenant, vous devez créer différentes variables pour chaque information par personne: nom1, citNo1, salaire1, nom2, citNo2, salaire2, etc.

Une meilleure approche serait d'avoir une collection de toutes les informations connexes sous une Personstructure de nom unique et de l'utiliser pour chaque personne.

En savoir plus sur struct

  • Structures et pointeurs
  • Passer des structures à une fonction

Articles intéressants...