#include <stdio.h>
int main()
{
int a = 114514;
int* p = &a;
printf("p = %x\n",p);
printf("&p = %x\n",&p);
printf("*p = %d",*p);
printf("a = %d\n",a);
printf("&a = %x",&a);
return 0;
}
输出结果:
p = 5ffe7c
&p = 5ffe70
*p = 114514
a = 114514
&a = 5ffe7c
概念:指针是保存地址的变量
它的在内存中的地址是 5ffe70 ,
保存的值是 5ffe7c 也就是a的地址,
解引用就是返回a的值
以下通过汇编语言理解指针:

程序先给 a 的地址赋值为 114514 ,然后把a的地址赋给指针p。这样在内存窗口里就可以看出p实际上保存了a的地址,a的地址保存的是114514。这样理解起来比较直观。
浙公网安备 33010602011771号