我需要了解之间有什么区别:
指向int的指针
和
指向int
指针的指针我不认为语言很重要,但要知道我正在使用c ++。
谢谢!
答案 0 :(得分:3)
指针只是内存地址。因此,指向int的指针表示一个变量,其值是int的内存地址,指向int的指针指的是一个变量,其值是指向int的指针的内存地址,以及该指针的值int是int的内存地址。
我们假设你定义了三个变量如下。
int a = 184; // Plain int, value 184.
int *b = &a; // Pointer to int, specifically pointing to a.
int **c = &b; // Pointer to pointer to int, which points to b, which points to a.
这些变量在内存中可能会是什么样子。 (请注意,只有该值实际存储在内存中。该类型是从使用该内存的代码推断出来的。)
+------------+ +------------+ +------------+
type | int | | int* | | int** |
+------------+ +------------+ +------------+
address | 0x02618368 | | 0x02618372 | | 0x02618376 |
+------------+ <--- +------------+ <--- +------------+
value | 184 | | 0x02618368 | | 0x02618372 |
+------------+ +------------+ +------------+
所以要从c
中获取一个int,你需要取消引用它两次。第一个deference从c
获取值,将其解释为指向int的地址,并查找该地址以获取指向int的指针,该指针等于b
。第二个取消引用将结果指针中的值取为int,将其解释为int的地址,并查找该地址以获取int,该值等于a
。