Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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,
postfix-expressionrepresenta um valor do tipostructouunioneidentifiernomeia um membro da estrutura ou da união especificada. O valor da operação é o deidentifiere é um l-value sepostfix-expressionfor um l-value. Para obter mais informações, confira Valor L e expressões de valor R.No segundo formato,
postfix-expressionrepresenta um ponteiro para uma estrutura ou união eidentifiernomeia um membro da estrutura ou união especificada. O valor é o deidentifiere um l-value.
Os dois formatos de expressões de seleção de membros têm efeitos semelhantes.
Na verdade, uma expressão envolvendo o operador de seleção de membro (->) é uma versão abreviada de uma expressão usando o ponto (.) quando a expressão antes do ponto consiste no operador de indireção (*) aplicado a um valor de ponteiro. Portanto,
expression->identifier
é equivalente a
(*expression).identifier
quando expression 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 Indirection 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, 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 membro (->) 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.