Condividi tramite


Membri di struttura e di unione

Un'"espressione di selezione dei membri" si riferisce ai membri di strutture e unioni. Un'espressione di questo tipo ha il valore e il tipo del membro selezionato.

postfix-expression . identifier 
postfix-expression –> identifier

In questo elenco vengono descritti i due formati delle espressioni di selezione dei membri:

  1. Nel primo formato, postfix-expression rappresenta un valore di tipo struct o union e identifier assegna un nome a un membro della struttura o unione specificata. Il valore dell'operazione è quello di identifier ed è un'espressione l-value se postfix-expression è un'espressione l-value. Per ulteriori informazioni vedere Espressioni L-value e R-value.

  2. Nel secondo formato, postfix-expression rappresenta un puntatore a un'unione o una struttura e identifier assegna un nome a un membro della struttura o unione specificata. Il valore è quello di identifier ed è un l-value.

I due formati delle espressioni di selezione dei membri hanno effetti simili.

Infatti, un'espressione che utilizza l'operatore di selezione dei membri (–>) è una versione abbreviata di un'espressione con il punto (.) se l'espressione prima del punto è l'operatore di riferimento indiretto (*) applicato a un valore del puntatore. Pertanto,

expression –> identifier

equivale a

(*expression) . identifier

quando expression è un valore del puntatore.

Esempi

Negli esempi seguenti viene fatto riferimento a questa dichiarazione della struttura. Per informazioni sull'operatore di riferimento indiretto (*) utilizzato in questi esempi, vedere Operatori di riferimento indiretto e address-of.

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

Un'espressione di selezione dei membri per gli aspetti della struttura item sarà:

item.sp = &item;

Nell'esempio precedente, l'indirizzo della struttura item viene assegnato al membro sp della struttura. Ciò significa che item contiene un puntatore a se stesso.

(item.sp)–>a = 24;

In questo esempio, l'espressione puntatore item.sp viene utilizzata con l'operatore di selezione dei membri (–>) per assegnare un valore al membro a.

list[8].b = 12;

In questa istruzione viene illustrato come selezionare un singolo membro della struttura da una matrice di strutture.

Vedere anche

Riferimenti

Operatori di accesso ai membri: . e ->