指向指针的指针是什么意思?

时间:2016-02-05 17:27:53

标签: c++ pointers

我经常看到c ++程序带有指向变量的指针,即** i。它是什么意思,为什么使用它。不能我们只使用一个指针而不是那个。单个指针和指针指针之间有什么区别。请解释每一步。谢谢。

1 个答案:

答案 0 :(得分:1)

变量占用一些空间来存储。这个空间取自内存。假设您的堆栈(内存)从0x12 34 56 78开始,并且您的整数a的值为4

int a = 4;

你的记忆可能如下:

0x12 34 56 78: 0x00 00 00 04 (a)

现在假设你还有一个指向a的指针:

int a = 4;
int* p = &a;

您的记忆将如下:

0x12 34 56 78: 0x00 00 00 04 (a)
0x12 34 56 7c: 0x12 34 56 78 (p)

现在假设你有一个指向p的指针:

int a = 4;
int* p = &a;
int** q = &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)

您可以按照地址从qpa。指针是一个间接层:它们指定某些东西,而不是它是什么。