Partager via


Structure et membres d'union

Une « expression de sélection de membres » fait référence aux membres de structures et d'unions. Ce type d'expression a la valeur et le type du membre sélectionné.

postfix-expression . identifier
postfix-expression -> identifier

La liste suivante décrit les deux formes d'expression de sélection de membres :

  1. Dans la première forme, postfix-expression représente une valeur de struct ou de type union, et identifier désigne un membre de la structure ou de l’union spécifiée. La valeur de l’opération est celle de identifier. Il s’agit d’une l-value si postfix-expression est une l-value. Pour plus d’informations, consultez Expressions L-value et R-value.

  2. Dans la seconde forme, postfix-expression représente un pointeur vers une structure ou une union, et identifier désigne un membre de la structure ou de l’union spécifiée. La valeur est celle de identifier. Il s’agit d’une l-value.

Les deux formes de ces expressions de sélection de membres ont des effets similaires.

En fait, une expression utilisant l’opérateur de sélection de membres (->) est une version abrégée d’une expression utilisant le point (.) si l’expression avant le point inclut l’opérateur d’indirection (*) appliqué à une valeur de pointeur. Par conséquent,

expression->identifier

équivaut à :

(*expression).identifier

quand expression est une valeur de pointeur.

Exemples

Les exemples suivants font référence à cette déclaration de structure. Pour plus d’informations sur l’opérateur d’indirection (*) utilisé dans ces exemples, consultez Opérateurs d’indirection et d’adresse.

struct pair
{
    int a;
    int b;
    struct pair *sp;
} item, list[10];

Une expression de sélection de membres pour la structure item ressemble à ceci :

item.sp = &item;

Dans l’exemple, l’adresse de la structure item est assignée au membre sp de la structure. Cela signifie que item contient un pointeur vers lui-même.

(item.sp)->a = 24;

Dans cet exemple, l’expression de pointeur item.sp est utilisée avec l’opérateur de sélection de membres (->) pour assigner une valeur au membre a.

list[8].b = 12;

Cette instruction indique comment sélectionner un membre de structure individuel dans un tableau de structures.

Voir aussi

Opérateurs d’accès aux membres : . et ->