Membros de união e estrutura
Uma "expressão de seleção de membros" faz referência a membros de estruturas e de uniões. Essas expressões têm o valor e o tipo do membro selecionado.
postfix-expression . identifier
postfix-expression –> identifier
A lista a seguir descreve os dois formatos de expressões de seleção de membros:
No primeiro formato, expressão postfix representa um valor do tipo struct ou união e identificador nomeia um membro da estrutura ou da união especificada. O valor da operação é o de identificador e é um l-value se expressão postfix for um l-value. Consulte Expressões de L-value e R-value para obter mais informações.
No segundo formato, expressão postfix representa um ponteiro para uma estrutura ou união identificador nomeia um membro da estrutura ou união especificada. O valor é o de identificador e é um l-value.
Os dois formatos de expressões de seleção de membros têm efeitos semelhantes.
De fato, uma expressão que envolva o operador de seleção de membros (–>) é uma versão resumida de uma expressão usando o ponto (.) se a expressão antes do período consistir no operador de indireção (*) aplicado a um valor do ponteiro. Portanto,
expression –> identifier
equivale a
(*expression) . identifier
quando expressão for um valor do ponteiro.
Exemplos
Os exemplos a seguir fazem referência a essa declaração de estrutura. Para obter informações sobre o operador de indireção (*) usado nestes exemplos, consulte o tópico sobre operadores de indireção e address-of.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Uma expressão de seleção de membros para a estrutura item é semelhante a:
item.sp = &item;
No exemplo anterior, o endereço da estrutura item é atribuído ao membro sp da estrutura. Isso significa que item contém um ponteiro para si mesmo.
(item.sp)–>a = 24;
Neste exemplo, a expressão de ponteiro item.sp é usada com o operador de seleção de membros (–>) para atribuir um valor ao membro a.
list[8].b = 12;
Essa instrução mostra como selecionar um membro individual da estrutura em uma matriz de estruturas.