2016-02-05 187 views
-5

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

+0

每一步是什么?而指针指针只是一个普通的指针。它的一个指针恰好指向指向一块内存的东西 – DTSCode

+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) 

您可以从q通过以下地址得到pa。指针是一个间接的层:它们指定某物的位置,而不是它是什么。

相关问题