结构和联合成员
“成员选择表达式”是指结构和联合的成员。 此类表达式具有选定成员的值和类型。
postfix-expression . identifier
postfix-expression –> identifier
此列表描述成员选择表达式的两种形式:
在第一个窗体, 后缀表达式 表示 struct 或 联合 类型的值,并且, 标识符 将该指定的结构或联合名称的成员。 ,如果该 后缀表达式 是左值,操作的值是 标识符 是左值。 请参见 左值和 R 值表达式 有关更多信息。
在第二种形式, 后缀表达式 表示指向结构或联合,并且, 标识符 将该指定的结构或联合名称的成员。 该值是 标识符 是左值。
成员选择表达式的两个窗体具有类似的效果。
实际上,相关成员选择运算符 (– AMP_GT) 的表达式是表达式的简短版本使用句点 (.),如果在句点前的表达式包括间接寻址运算符 (*) 应用于指针值。 因此,
expression –> identifier
等效于
(*expression) . identifier
当 表达式 是指针值。
示例
下面的示例引用此结构声明。 有关这些示例 (*) 的信息的间接寻址运算符,请参见 间接和运算符地址。
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
item 结构的成员选择表达式如下所示:
item.sp = &item;
在上面的示例中, item 结构的地址分配给 framework 的 sp 成员。 这意味着 item 包含指向自身。
(item.sp)–>a = 24;
在此示例中,指针表达式 item.sp 用于与成员选择运算符 (– AMP_GT) 将值赋给该成员 a。
list[8].b = 12;
此语句演示如何选择单个结构成员从结构数组。