从结构中访问变量

Zee*_*ang 1 c++ pointers indirection

我们如何访问结构的变量?我有一个结构:

typedef struct {
   unsigned short a;
   unsigned shout b;
} Display;
Run Code Online (Sandbox Code Playgroud)

而在我的其他课程中,我有一个方法:

int NewMethod(Display **display)
{
   Display *disp=new Display();
   *display = disp;
   disp->a=11;
}
Run Code Online (Sandbox Code Playgroud)

**显示是什么意思?要访问我使用->过的struct变量,还有其他方法吗?

unw*_*ind 5

正如Taylor所说,双星号是"指针指针",你可以根据需要拥有多个指针级别.

我确定你知道,箭头操作符(a->b)是星号的快捷方式,用于取消引用指针,以及访问字段的点,即

a->b = (*a).b;
Run Code Online (Sandbox Code Playgroud)

由于点更紧密,所以括号是必要的.对于双星号没有这样的运算符,在访问字段之前,必须首先取消引用以达到所需的级别:

Display **dpl = ...;

(*dpl)->a = 42;
Run Code Online (Sandbox Code Playgroud)

要么

(**dpl).a = 42;
Run Code Online (Sandbox Code Playgroud)