「俗话编程」什么是指针?

俗语解释

你有事想找朋友帮忙
会直接打朋友电话
但是你想找明星谈合作
就必须先联系明星的经纪人
经纪人觉得你靠谱才会带着你去见明星
这个经纪人,就是编程领域的指针

现实例子

C/C++中的指针,是一种变量,它长度为机器字长(32位系统就是4字节,64位系统就是8字节),储存一个对象的地址——地址长度=机器字长,巧不巧?

对象可以是简单对象,例如int,这时候用指针就感觉很矫情,因为你想找朋友帮忙直接他打电话就行,何必先打电话给他老婆问他在不在?

对象也可以是复杂对象,例如FILE,你要操作文件,就必须获取一个文件指针。有杠精说我不能自己定义个FILE对象啊?可以,那你自己就是文件了,操你自己吧。

延伸拓展

指针能聚拢资源

经纪人一般为多个明星服务
这些明星一般散居各地
但你可以通过经纪人联系到他们
同样地,指针可以指向散布在内存中的多个对象
将它们串联成逻辑上的一个整体

指针会降低性能

如果没有经纪人,你一次登门就能访问到明星(小咖)
现在多了个经纪人,你得登2次门,一次经纪人,一次明星(大咖)
比原来多了一次,
好麻烦啊!
但是这个世界就是这样,要么麻烦,要么事办不成。
同理,CPU访问复杂对象
也要先去内存取出对象指针,再根据指针去内存取出对象本身
比原来多了一次
好麻烦啊!

指针可转变类型

比如有个经纪人,他一开始为音乐明星提供服务
但后来音乐行业不赚钱了,生活所迫他转型成电影明星经纪人
对于想投放广告的小老板来说
以前他可以帮忙宣传音乐周边广告
现在只能是影视周边广告了
虽然他的业务类型已经变了
但这个经纪人还是原来的经纪人,他的联系方式没变
同理,对指针做类型转换之后,就能做新的操作了
但指针在内存中的地址没变。

升华总结

社会上很多事都是通过引入一个中间层来简化复杂度的,例如房产中介,基金经理,等等,这些中间层将多对多的生产关系简化成两个一对多,这种中间层提供的服务很有必要。
话说回来,指针应该是最简单的服务了吧?相比微服务,指针简直是纳服务😏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值