#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的值

以下通过汇编语言理解指针:
image
程序先给 a 的地址赋值为 114514 ,然后把a的地址赋给指针p。这样在内存窗口里就可以看出p实际上保存了a的地址,a的地址保存的是114514。这样理解起来比较直观。

posted on 2026-05-07 13:45  %HuTao%  阅读(1)  评论(0)    收藏  举报