Les structures en C

Les structures en C
Les structures en C

Les structures en C sont une collection d’une ou plusieurs variables généralement, ayant des types différents. Les structures permettent d’organiser les données compliquées. En outre, les variables d’une structure sont groupées sous un seul nom. Aussi, les variables liées sont groupés en seule entité au lieu des entités séparées.

Par exemple nous pouvons décrire un employé par :

  • Nom
  • Prénom
  • Salaire
  • Adresse.

En fait, le langage C permet au programmeur de construire ses propres types de données agrégées. Ainsi, le programmeur doit préciser les éléments qui suivent :

  • Premièrement, le nom donné au type de données;
  • Deuxièmement, la composition du type. En d’autres termes, le nom et la nature des données qu’il contient.

Les structures en C – La syntaxe

Afin de définir une structure en C vous devez suivre la syntaxe suivante :

struct nom structure{
type1 var1;
type2 var2;
type3 var3;
...
};


Cette structure définit le type nom structure composée des variables var1, var2, var3, …

Pour illustrer les choses, prenons l’exemple suivant :
Un point d’un plan 2-D se caractérise par ses coordonnées x et y. Supposant que les coordonnées sont des entiers, vous pouvez déclarer la structure décrivant un point en C par :

Struct point{
int x;
int y;
};


Remarques sur le mot-clé Struct :

  • En premier lieu, le mot-clè Struct fait partie intégrante du nom du type.
  • Permet d’introduire la déclaration de la structure, qui est une liste de déclarations placées entre { et }.
  • Peut être suivi d’un nom que vous souhaitez attribuer à la structure. Dans ce cas, « point« . Ce nom sera utilisé par la suite

Déclaration d’une instance des structures en C

Prenons à nouveau l’exemple de la structure « Point » ci-dessous :

Struct point{
int x;
int y;
};


Afin de déclarer une variable simple de la structure « Point » utilisez la syntaxe ci-dessous :

struct point p; /*déclare une variable « p » de type point*/
struct point q, r; /*déclare deux variables « q » et « r » de type point*/
struct point t[20]; /* déclare un tableau « t » de 20 éléments de la structure */


Différentes façons de déclarer les variables d’une structure

Prenons l’exemple suivant :

struct point{
int x;
int y;
} p1, p2, p3 ;


Les variables p1, p2, p3, ont été déclarées avec la définition de la structure.

Considérons l’exemple suivant. Les variables p4, p5 sont déclarées en utilisant le nom du nouveau type. :

struct point p4, p5;


Dan l’exemple suivant, la variable p6 est une variable locale déclarées en utilisant le nom du nouveau type et initialisée aléatoirement :

main(){
struct point p6;

printf("%d %d\n",p1.x, p1.y);
printf("%d %d\n",p4.x, p4.y);
printf("%d %d\n",p6.x, p6.y);
}


En conséquence, la sortie du programme ci-dessus sera comme suit:

0 0
0 0
134513753 13897716


Initialisation d’une variable Struct

En fait, les champs peuvent être initialisées au moment de la déclaration de la variable de type structure. Par exemple:

struct point pt1 = {20,30};
struct point pt2={2,3}, pt3={-7,50};


Comme vous pouvez le voir, les valeurs d’initialisation sont fournies entre { et }. Gardez à l’esprit que l’affectation des initialisations suit l’ordre d’apparition des champs dans la structure. En d’autres termes, la Nième valeur est affectée au champ introduit à la Nième position dans la définition de la structure.

Dans l’exemple suivant : struct point pt1 = {20,30};

Le champ x reçoit la valeur 20 et le champ y reçoit 30

Accès aux champs d’une variable Struct

L’accès aux champs des structures en C s’effectue selon la syntaxe suivante :
NomDeStructure.membre

Le point (.) permet en fait de connecter le champ à la structure dont il fait partie.
En outre, pour modifier les valeurs des champs des structures en C, utilisez la même syntaxe. Par exemple :

pt1.x = -2; affecte en fait la valeur « -2 » au champ « x » de la variable « pt1« .
pt1.y = 0; affecte la valeur « 0 » au champ « y » de la variable « pt1« .
pt2.x = pt1.y;
affecte en fait la valeur du champ « x » de la variable « pt1 » au champ « x » de la variable « pt2« .
pt2.y = 2*pt1.x; affecte la valeur double du champ « y » de la variable « pt1 » au champ « y » de la variable « pt2« .


Finalement, c’était comment déclarer et utiliser des structures en C. Toutefois, si vous souhaitez accéder à plus d’informations consultez ce tutoriel.

Lisez également notre article sur les entrées-sorties en C/C++.

Laisser un commentaire

Fermer le menu