俗语解释
你有事想找朋友帮忙
会直接打朋友电话
但是你想找明星谈合作
就必须先联系明星的经纪人
经纪人觉得你靠谱才会带着你去见明星
这个经纪人,就是编程领域的指针
现实例子
C/C++中的指针,是一种变量,它长度为机器字长(32位系统就是4字节,64位系统就是8字节),储存一个对象的地址——地址长度=机器字长,巧不巧?
对象可以是简单对象,例如int,这时候用指针就感觉很矫情,因为你想找朋友帮忙直接他打电话就行,何必先打电话给他老婆问他在不在?
对象也可以是复杂对象,例如FILE,你要操作文件,就必须获取一个文件指针。有杠精说我不能自己定义个FILE对象啊?可以,那你自己就是文件了,操你自己吧。
延伸拓展
指针能聚拢资源
经纪人一般为多个明星服务
这些明星一般散居各地
但你可以通过经纪人联系到他们
同样地,指针可以指向散布在内存中的多个对象
将它们串联成逻辑上的一个整体
指针会降低性能
如果没有经纪人,你一次登门就能访问到明星(小咖)
现在多了个经纪人,你得登2次门,一次经纪人,一次明星(大咖)
比原来多了一次,
好麻烦啊!
但是这个世界就是这样,要么麻烦,要么事办不成。
同理,CPU访问复杂对象
也要先去内存取出对象指针,再根据指针去内存取出对象本身
比原来多了一次
好麻烦啊!
指针可转变类型
比如有个经纪人,他一开始为音乐明星提供服务
但后来音乐行业不赚钱了,生活所迫他转型成电影明星经纪人
对于想投放广告的小老板来说
以前他可以帮忙宣传音乐周边广告
现在只能是影视周边广告了
虽然他的业务类型已经变了
但这个经纪人还是原来的经纪人,他的联系方式没变
同理,对指针做类型转换之后,就能做新的操作了
但指针在内存中的地址没变。
升华总结
社会上很多事都是通过引入一个中间层来简化复杂度的,例如房产中介,基金经理,等等,这些中间层将多对多的生产关系简化成两个一对多,这种中间层提供的服务很有必要。
话说回来,指针应该是最简单的服务了吧?相比微服务,指针简直是纳服务😏
583

被折叠的 条评论
为什么被折叠?



