Kun*_*asu -2 c c++ pointers double-pointer
有人请详细说明这里有什么好玩的吗?
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;
}
Run Code Online (Sandbox Code Playgroud)
输出: -
首先,p是一个指向整数指针的指针.
int **p = 0;
p= 0,*p=无,**p=少于零.
++p;
与p = p + 1相同.表示指向指针的指针的大小.指针基本上是,至少在你的操作系统上,32位长度(4字节).p现在0点后4个字节的值p是4.
p是指向指针的指针int.它被初始化为0,即它是一个空指针.
然后将其递增以指向下一个连续指向int内存的指针.* 下一个指针将位于地址4,因为在您的平台上,指针的大小为4个字节.
然后printf将指针值解释为整数,因此显示"4".
*但请注意,这是现在未定义的行为.
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |