Estrutura e membros da união

Uma "expressão de seleção de membro" refere-se aos membros do estruturas e uniões.Uma expressão como essa tem o valor e o tipo do membro selecionado.

postfix-expression . identifier
postfix-expression –> identifier

Esta lista descreve as duas formas de expressões a seleção de membro:

  1. No primeiro formulário, postfix-expressão representa um valor de struct ou união tipo, e identificador nomeia um membro da estrutura especificada ou união.O valor da operação é de identificador e é um l-value, se postfix-expressão é um valor de l.Consulte L-Value e expressões de R-Value para obter mais informações.

  2. Na segunda forma, postfix-expressão representa um ponteiro para uma estrutura ou união, e identificador nomeia um membro da estrutura especificada ou união.O valor é de identificador e é um valor de l.

As duas formas de expressões de seleção de membro têm efeitos semelhantes.

Na verdade, uma expressão que envolvem o operador de seleção de membro (– >) é uma versão abreviada de uma expressão usando o período (.) se a expressão antes do período consiste no operador de indireção (*) aplicada a um valor de ponteiro.Portanto,

expression –> identifier

Equivale a

(*expression) . identifier

Quando expressão é um valor do ponteiro.

Exemplos

Consultem os exemplos a seguir essa declaração de estrutura.Para obter informações sobre o operador de indireção (*) usadas nestes exemplos, consulte indireção e operadores adress-of.

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

Uma expressão de seleção de membro para o item estrutura tem esta aparência:

item.sp = &item;

No exemplo acima, o endereço da item estrutura é atribuída para o sp membro da estrutura.Isso significa que item contém um ponteiro para si mesmo.

(item.sp)–>a = 24;

Neste exemplo, a expressão do ponteiro item.sp é usado com o operador de seleção de membro (– >) para atribuir um valor para o membro a.

list[8].b = 12;

Esta instrução mostra como selecionar um membro individual de estrutura de uma matriz de estruturas.

Consulte também

Referência

Operadores de acesso de membro:. e - >