c++ - C中的双指针

标签 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;
}

输出:-

  • 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/

相关文章:

c++ - vector 大小的段错误

c++ - 如何将数字乘以通过引用传递的函数

c - 为什么我不能在我的 C 代码中使用//风格的注释?

c++ - "vector of objects"与 "vector of Object pointers"的大小

c++ - 编译器一直告诉 "' 对象'尚未声明“......?

c++ - 数组 :/有问题

c++ - 在网络第 3 层和第 2 层编程

c - C语言求和函数

c++ - 在构造函数中参数化指针

c - 使用 openGL 从 C 中的文件或指针打印值