-5
我经常看到C++程序带有一个指向变量的指针,即** i。这是什么意思,为什么它被使用。不能,我们只使用一个指针而不是那个。单指针和指针指针之间的区别是什么?请解释每一步。谢谢。指针指针是什么意思?
我经常看到C++程序带有一个指向变量的指针,即** i。这是什么意思,为什么它被使用。不能,我们只使用一个指针而不是那个。单指针和指针指针之间的区别是什么?请解释每一步。谢谢。指针指针是什么意思?
变量占用一些空间来存储。这个空间来自内存。假设您的堆栈(内存)开始于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)
您可以从q
通过以下地址得到p
到a
。指针是一个间接的层:它们指定某物的位置,而不是它是什么。
每一步是什么?而指针指针只是一个普通的指针。它的一个指针恰好指向指向一块内存的东西 – DTSCode
一个说“袜子在床下”的邮件和一个说“袜子的方向在邮件上的邮件之间有什么区别”冰箱”? –
想象一下数组。数组是一行指向一堆项目的指针。现在想象一个指向数组的指针 - 这是一个指向指针的指针。 –