1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct Something
{
int nValue;
float fValue;
};
// Member selection using actual struct variable
Something sSomething;
sSomething.nValue = 5;
// Member selection using reference to struct
Something &rsSomething = sSomething;
rsSomething.nValue = 5;
// Member selection using pointer to struct
Something *psSomething = &sSomething;
(*psSomething).nValue = 5;
注意指针解引用必须括在括号,因为成员选择运算符具有比解引用操作符的优先级更高的。
因为访问结构和类成员通过指针是笨拙的语法,C + +提供的第二个成员选择运算符(->)从指针做成员选择。下面的两行是等价的: