構造体や共用
「メンバー」は選択構造体や共用体のメンバーを示します。このような式に選択されたメンバーの値と型があります。
postfix-expression . identifier
postfix-expression –> identifier
このリストはメンバー選択の式の 2 とおりの形式を記述します :
最初の形式では 後置式は struct または 共用体 の型と 識別子名 の値は指定された構造体または共用体のメンバーとして表します。操作の値は 後置式は 左辺値で 識別子 ので左辺値です。詳細については左辺値と値の式 R を参照してください。
2 番目の形式は 後置式 で は 構造体または共用体へのポインターと 識別子名を 指定された構造体または共用体のメンバーとして表します。 識別子 の値はで左辺値です。
メンバー選択した式の 2 とおりの形式も同様の効果があります。
実際にはメンバー選択演算子 () – > を含む式はピリオド (。) を使用してピリオドの前の式がポインター値に適用される間接演算子 ()* で構成されている場合は式の省略形のバージョンです。次に例を示します。
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;
この例では a メンバーに値を割り当てるにはメンバー選択演算子 () と – > ポインター式 item.sp が使用されます。
list[8].b = 12;
このステートメントは構造体の配列から個々の構造体メンバーを選択する方法を示しています。