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变量,还有其他方法吗?
正如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)
| 归档时间: |
|
| 查看次数: |
7498 次 |
| 最近记录: |