Programmer en langage C
168
© Éditions Eyrolles
Une telle affectation globale remplace avantageusement :
art1.numero = art2.numero ;
art1.qte
= art2.qte ;
art1.prix
= art2.prix ;
Notez bien qu’une affectation globale n’est possible que si les structures ont été définies avec
le même nom de modèle ; en particulier, elle sera impossible avec des variables ayant une
structure analogue mais définies sous deux noms différents.
L’opérateur d’affectation et, comme nous le verrons un peu plus loin, l’opérateur d’adresse &
sont les seuls opérateurs s’appliquant à une structure (de manière globale).
L’affectation globale n’est pas possible entre tableaux. Elle l’est, par contre, entre structures.
Aussi est-il possible, en créant artificiellement une structure contenant un seul champ qui est
un tableau, de réaliser une affectation globale entre tableaux.
2.3 Initialisations de structures
On retrouve pour les structures les règles d’initialisation qui sont en vigueur pour tous les
types de variables, à savoir :
●
En l’absence d’initialisation explicite, les structures de classe statique sont, par défaut, initialisées à zéro ; celles possédant la classe automatique ne sont pas initialisées par défaut
(elles contiendront donc des valeurs aléatoires).
●
Il est possible d’initialiser explicitement une structure lors de sa déclaration. On ne peut
toutefois employer que des constantes ou des expressions constantes et cela aussi bien pour
les structures statiques que pour les structures automatiques,alors que, pour les variables
scalaires automatiques, il était possible d’employer une expression quelconque (on
retrouve là les mêmes restrictions que pour les tableaux).
Voici un exemple d’initialisation de notre structure art1, au moment de sa déclaration :
struct enreg art1 = { 100, 285, 2000 } ;
Vous voyez que la description des différents champs se présente sous la forme d’une liste de
valeurs séparées par des virgules, chaque valeur étant une constante ayant le type du champ
correspondant. Là encore, il est possible d’omettre certaines valeurs.
Delannoy Livre.book Page 168 Mercredi, 6. mai 2009 4:26 16
168
© Éditions Eyrolles
Une telle affectation globale remplace avantageusement :
art1.numero = art2.numero ;
art1.qte
= art2.qte ;
art1.prix
= art2.prix ;
Notez bien qu’une affectation globale n’est possible que si les structures ont été définies avec
le même nom de modèle ; en particulier, elle sera impossible avec des variables ayant une
structure analogue mais définies sous deux noms différents.
L’opérateur d’affectation et, comme nous le verrons un peu plus loin, l’opérateur d’adresse &
sont les seuls opérateurs s’appliquant à une structure (de manière globale).
L’affectation globale n’est pas possible entre tableaux. Elle l’est, par contre, entre structures.
Aussi est-il possible, en créant artificiellement une structure contenant un seul champ qui est
un tableau, de réaliser une affectation globale entre tableaux.
2.3 Initialisations de structures
On retrouve pour les structures les règles d’initialisation qui sont en vigueur pour tous les
types de variables, à savoir :
●
En l’absence d’initialisation explicite, les structures de classe statique sont, par défaut, initialisées à zéro ; celles possédant la classe automatique ne sont pas initialisées par défaut
(elles contiendront donc des valeurs aléatoires).
●
Il est possible d’initialiser explicitement une structure lors de sa déclaration. On ne peut
toutefois employer que des constantes ou des expressions constantes et cela aussi bien pour
les structures statiques que pour les structures automatiques,alors que, pour les variables
scalaires automatiques, il était possible d’employer une expression quelconque (on
retrouve là les mêmes restrictions que pour les tableaux).
Voici un exemple d’initialisation de notre structure art1, au moment de sa déclaration :
struct enreg art1 = { 100, 285, 2000 } ;
Vous voyez que la description des différents champs se présente sous la forme d’une liste de
valeurs séparées par des virgules, chaque valeur étant une constante ayant le type du champ
correspondant. Là encore, il est possible d’omettre certaines valeurs.
Delannoy Livre.book Page 168 Mercredi, 6. mai 2009 4:26 16
