C语言指针难倒90%人?买房比喻让你瞬间开窍

有个朋友学C语言,学到指针直接崩溃,问我:"这指针到底是啥?为啥我赋值10它报错?"我叹了口气说:你见过谁家的房子,客厅里住着一串门牌号?

先别笑。今天我就用三个段子,把指针给你整明白,保证你看完直接开窍。

段子一:变量就是买房,指针就是中介

你定义 `int a = 10`,相当于你买了间房,房号是系统随机给的(比如101),房间里住着"10"这个人。你只能换人住(改a的值),但不能自己改房号。这就是为什么 `&a` 取出地址后,你没法给它赋新值------你见过谁给房号贴个新号码就往里硬塞人的?

好,中介来了。你定义 `int *p`,等于又买了一间房。但这间房特殊------它不能住人,只能住别的房的房号。比如 `p = &a`,就是让p这间房的客厅里贴着一张纸条,上面写着"101"。这时你查中介手里的纸条,就知道a住在哪。

段子二:指针变量为什么不能存普通数字?

有人非要把10塞进p里:`p = 10`。编译直接报错。为啥?因为p这间房的"装修"只允许放地址,你硬塞个人进去,房子直接炸了。就像你家快递柜只能放收件码,你非要往里扔个榴莲,柜门都关不上。记住了:指针变量存的是地址,不是值。地址是房号,值是住户,俩东西别搞混。

段子三:指向不同类型?中介也得专业

你定义 `int *p1`,然后想 `p1 = &x`(x是float)。编译器又怒了。为啥?因为p1这家中介只接整型房的单子。你把一个实数房的门牌号塞给它,它拿着纸条去推销,结果敲开门发现里面住着3.14,中介当场懵逼。这就像让房产中介去卖猪圈------专业不对口,容易出事故。

你看,指针概念就这么点东西。很多人觉得难,是因为老师上来就讲二级指针、函数指针,直接劝退。其实一开始你就记住三句话:

变量就是房间,地址就是房号,指针变量就是专门存房号的"中介"。

中介只能存地址,不能存人。

中介分专业,整型中介不能掺和浮点型的事。

把这仨段子吃透,再回头看 `scanf` 里的 `&`,你看它就顺眼了------那就是在告诉电脑:"嘿,把这个数塞进这个房号里去。"

指针不难,难的是没人用段子讲。今天你学会了,明天就可以去教别人,顺便说一句:"我这中介费不贵,点个赞就行。"

相关推荐
H.莓飛34 分钟前
【数据结构】排序_OJ题(二):划分与选择
linux·服务器·c语言·开发语言·数据结构·visual studio
思麟呀1 小时前
嵌入式入门(四)USART 串口深度解析:单片机第一次与电脑对话
c语言·单片机·嵌入式硬件·1024程序员节
wuminyu1 小时前
JVM规范学习总结-Java源码经过javac编译后产物
java·linux·c语言·jvm·c++
java_nnnn1 小时前
Linux 学习第二篇:从零认识 Linux 文件系统、目录结构与基本命令
linux·运维·学习·1024程序员节
小白今天也很酷1 小时前
MCXN947更新板载DAP_Link固件的方法
c语言·python·单片机·ubuntu·excel·1024程序员节
東隅已逝,桑榆非晚2 小时前
搜索二叉树
c++·笔记·学习·1024程序员节
Young Doro12 小时前
独立性检测学习任务
人工智能·学习·数据挖掘
Navigator_Z13 小时前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
卡卡~~13 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法