C语言指针:一文讲透,小白秒懂 指针是 C 语言的灵魂也是初学者的噩梦。本文用生活类比 三行代码带你彻底搞懂它。一、一句话定义指针 地址它存的不是数据本身而是数据在内存里的门牌号。二、生活类比秒懂概念类比变量房子里面住着数据指针门牌号知道房子在哪*钥匙用门牌号开门取东西)查地址看门牌号是多少三、核心代码就三行int a 10; // 变量a值是10 int *p a; // p是指针存了a的地址 printf(%d, *p); // *p就是a输出10拆解int *p → 声明一个int型指针叫 pa → 取 a 的地址*p → 解引用通过地址拿到值四、符号速记符号作用口诀取地址and → 和地址绑在一起*解引用取值星星点灯照亮值int *p声明指针读作int型指针p五、内存图解p 里面存的是 0x1000a 的地址*p 才能拿到 10a 的值六、常见坑避坑指南坑说明解决野指针指针没初始化就乱指像没地址的快递声明时赋值NULLNULL指针p NULL表示空地址用前检查if (p ! NULL)类型不匹配int*不能存char的地址类型必须一致七、进阶指针的指针int a 10; int *p a; // p指向a int **pp p; // pp指向p指针的指针 printf(%d, **pp); // 输出10两层 ** 就是钥匙开两次门先找到 p再找到 a。八、一句话总结指针存地址*号取内容号取地址类型要对齐参考代码完整可运行#include stdio.h int main() { int a 10; int *p a; printf(a的值: %d\n, a); // 10 printf(a的地址: %p\n, a); // 0x... printf(p的值(地址): %p\n, p); // 同上 printf(*p的值: %d\n, *p); // 10 return 0; }如果你觉得有帮助欢迎点赞、收藏、评论让更多人看到