Estructura y unión
Una “expresión miembro-selección” hace referencia a los miembros de estructuras y uniones.Una expresión tiene el valor y el tipo del miembro seleccionado.
postfix-expression . identifier
postfix-expression –> identifier
Esta lista se describen los dos formularios de expresiones miembro-selección:
En el primer formulario, la sufijo-expresión representa un valor de struct o tipo de union , y los nombres de identificador un miembro de la estructura o unión especificadas.El valor de la operación es el ID y es un valor l si la sufijo-expresión es un valor l.Vea Las expresiones de valor l y r-value para obtener más información.
En el segundo formulario, la sufijo-expresión representa un puntero a una estructura o unión, y los nombres de identificador un miembro de la estructura o unión especificadas.El valor es el ID y es un valor l.
Los dos formularios de expresiones miembro-selección tienen efectos similares.
De hecho, una expresión que contenga el operador miembro-selección (– >) es una versión rápida de una expresión mediante el punto (.) si la expresión antes de período consta del operador de direccionamiento indirecto (*) aplicado a un valor de puntero.Por lo tanto,
expression –> identifier
es equivalente a
(*expression) . identifier
cuando expression es un valor de puntero.
Ejemplos
Los ejemplos siguientes hacen referencia a esta declaración structure.Para obtener información sobre el operador de direccionamiento indirecto (*) utilizado en estos ejemplos, vea Direccionamiento indirecto y dirección de Operators.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Una expresión miembro-selección para la estructura de item tiene el siguiente aspecto:
item.sp = &item;
En el ejemplo anterior, la dirección de la estructura de item al miembro de sp de la estructura.esto significa que item contiene un puntero a sí mismo.
(item.sp)–>a = 24;
En este ejemplo, la expresión item.sp de puntero se utiliza con el operador miembro-selección (– >) para asignar un valor al miembro a.
list[8].b = 12;
Esta instrucción muestra cómo seleccionar un miembro de estructura individual de una matriz de estructuras.