看书都知道指针储存的是地址,然而实际应用中经常会迷糊。特此放一个例子用以厘清他们之间的关系,也方便在感到迷茫的时候速查。
对于以下代码
#include <stdio.h>
int main () {
int a = 233; // 假设此时a所处内存地址为586533372。该地址由系统自动分配
int *p;
p = &a;
return 0;
}
那么使用以下取值方式,得到的值分别为:
取值 | 得到 | 说明 |
---|---|---|
a | 233 | 对变量直接取值 |
&a | 586533372 | 取变量地址 |
p | 586533372 | 对指针取值,得到变量地址 |
*p | 233 | 取指针地址存储值,等于变量值 |
&p | 586533360 | 取存储指针变量的内存地址 |