指向指针的指针是什么意思? 我经常看到C++程序,指针指向指针变量i **i。它是什么意思?为什么使用它。我们不能只用一个指针来代替它吗。单个指针和指向指针的指针之间的区别是什么。请解释每一步。谢谢。
变量会占用一些存储空间。这个空间是从内存中提取的。假设堆栈内存从0x12 34 7856开始,并且有一个值为4的整数a: 您的内存可能如下所示:指向指针的指针是什么意思? 我经常看到C++程序,指针指向指针变量i **i。它是什么意思?为什么使用它。我们不能只用一个指针来代替它吗。单个指针和指向指针的指针之间的区别是什么。请解释每一步。谢谢。,c++,pointers,C++,Pointers,变量会占用一些存储空间。这个空间是从内存中提取的。假设堆栈内存从0x12 34 7856开始,并且有一个值为4的整数a: 您的内存可能如下所示: 0x12 34 56 78: 0x00 00 00 04 (a) 0x12 34 56 78: 0x00 00 00 04 (a) 0x12 34 56 7c: 0x12 34 56 78 (p) 0x12 34 56 78: 0x00 00 00 04 (a) 0x12 34 56 7c: 0x12 34 56 78 (p) 0x12 34 56
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 80: 0x12 34 56 7c (q)
现在假设您还有一个指向以下对象的指针:
然后,您的内存将如下所示:
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 80: 0x12 34 56 7c (q)
现在假设您有一个指向p的指针:
然后,您的内存将如下所示:
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)
0x12 34 56 80: 0x12 34 56 7c (q)
你可以按照地址从q到p到a。指针是一个间接层:它们指定某物在哪里,而不是它是什么。什么的每一步?指向指针的指针就是普通指针。它是一个指针,正好指向一块内存。一个写着袜子在床下的帖子和一个写着袜子方向在冰箱上的帖子之间的区别是什么?想象一个数组。数组是指向一行中一组项的指针。现在想象一个指向数组的指针——这是指向指针的指针。一个非常常见的例子是2D数组或字符串数组char*可能是