Compartir a través de


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:

  1. 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.

  2. 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.

Vea también

Referencia

Operadores de acceso a miembros: . y - >