Partager via


Structure et membres de l’union

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

postfix-expression . identifier
postfix-expression -> identifier

Cette liste décrit les deux formes des expressions de sélection de membre :

  1. Dans le premier formulaire, postfix-expression représente une valeur ou structunion un type, et identifier nomme un membre de la structure ou de l’union spécifiée. La valeur de l’opération est celle d’une identifier valeur l-value si postfix-expression elle est une valeur l. Pour plus d’informations, consultez expressions L-Value et R-Value.

  2. Dans le deuxième formulaire, postfix-expression représente un pointeur vers une structure ou une union, et identifier nomme un membre de la structure ou de l’union spécifiée. La valeur est celle d’une identifier valeur l-value.

Les deux formes d’expressions de sélection de membre ont des effets similaires.

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

expression->identifier

équivaut à :

(*expression).identifier

lorsqu’il expression s’agit d’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 indirection (*) utilisé dans ces exemples, consultez Indirection et Adresse des opérateurs.

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

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

item.sp = &item;

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

(item.sp)->a = 24;

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

list[8].b = 12;

Cette instruction montre comment sélectionner un membre de structure individuel à partir d’un tableau de structures.

Voir aussi

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