有人请详细说明这里发生了什么吗?
int main()
{
int **p = 0;
//p=? and why| *p=? and why|**p=? and why
++p;
//p=? and why| *p=? and why|**p=? and why
printf("%d\n", p);
return 1;
}
输出:-
- 4(为什么?)
最佳答案
首先,p
是一个指向整数的指针。
int **p = 0;
p
= 0,*p
= 无,**p
= 小于无。
++p;
与 p = p + 1 相同。进一步表示指向 int 指针的一个指针的大小。至少在您的操作系统上,指针基本上是 32 位长度(4 个字节)。 p
现在指向 0 之后的 4 个字节。p
的值为 4。
关于c++ - C中的双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428837/