结构和联合成员

“成员选择表达式”是指结构和联合的成员。 此类表达式具有选定成员的值和类型。

postfix-expression . identifier
postfix-expression –> identifier

此列表描述成员选择表达式的两种形式:

  1. 在第一个窗体, 后缀表达式 表示 struct 或 联合 类型的值,并且, 标识符 将该指定的结构或联合名称的成员。 ,如果该 后缀表达式 是左值,操作的值是 标识符 是左值。 请参见 左值和 R 值表达式 有关更多信息。

  2. 在第二种形式, 后缀表达式 表示指向结构或联合,并且, 标识符 将该指定的结构或联合名称的成员。 该值是 标识符 是左值。

成员选择表达式的两个窗体具有类似的效果。

实际上,相关成员选择运算符 (– 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;

此语句演示如何选择单个结构成员从结构数组。

请参见

参考

成员访问运算符:.和-->