結構和等位的成員
"選取成員運算式"參考的結構和等位的成員。 這類運算式的值和所選成員的型別。
postfix-expression . identifier
postfix-expression –> identifier
這份清單將告訴您兩種形式的成員選取的運算式:
在第一個表單中, 後置運算式代表值為struct或等位型別,以及識別項名稱指定的結構或等位的成員。 作業的值,就是識別項 ,如果是 l 值 後置運算式是左值。 請參閱值 (L-VALUE) 和 R-Value 運算式如需詳細資訊。
在第二個表單中, 後置運算式 結構或等位,代表變數的指標和 識別項名稱指定的結構或等位的成員。 值為識別項是左值。
兩種形式的成員選取範圍運算式有同樣的效果。
事實上,涉及成員選取運算子的運算式 (->) 會使用句點運算式的速記版本 (.) 如果句點之前的運算式所組成的間接取值運算子 (*) 套用至指標值。 因此,
expression –> identifier
相等於
(*expression) . identifier
當運算式是一個指標值。
範例
下列範例會參考這個結構宣告。 如需間接取值運算子 (*) 使用這些範例中,請參閱 間接取值和傳址運算子。
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
成員選擇運算式item結構看起來像這樣:
item.sp = &item;
在上述的地址範例item結構係授與sp結構的成員。 這表示item包含本身的指標。
(item.sp)–>a = 24;
在這個範例中,指標運算式item.sp與 [成員選取運算子搭配使用時 (->) 來將值指派給成員a。
list[8].b = 12;
此陳述式示範如何從一個陣列的結構中選取個別的結構成員。