![](/img/trans.png)
[英]In Objective-C (or C), how does this code with pointer to a bool work?
[英]How does a pointer of pointer work in this C code?
int r = 50;
int *p;
int **k;
int ***m;
printf( "r: %d ", r );
p = &r;
k = &p;
m = &k;
***m = 100; //line 9
printf( "r: %d\n", r );
当只有一个指针时,我可以理解我们取 100 并将其分配给指针所在地址处的变量。 但是,当我们使用多个指针级别执行此操作时,到底发生了什么? (第 9 行)
int *p=&r
: p
是pointer-to-int
的pointer-to-int
,它采用address of r
的address of r
。
int **k=&p
: k
是pointer-to-( pointer-to-int )
,它采用address of p
的address of p
。
int ***m=&k
: m
是pointer-to-( pointer-to-( pointer-to-int ) )
,它采用address of k
的address of k
。
当您执行***m = 100
,您正在“解包”指针,最后您只得到int
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.