独闷闷网

 找回密码
 立即注册
搜索
查看: 545|回复: 0
收起左侧

[原创] 新感悟!指针在函数形参入口处的第四种作用,临时借用外部全局变量数组。

[复制链接]
发表于 2016-10-9 16:04:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2016-10-9 16:09 编辑

★坚鸿-深圳:
       以前,我一直以为指针在函数入口的地方,只有三个作用,一个是作为输入,一个是作为输出,还有一个是输入输出。比如加const关键词前缀的指针只能做输入,不加const关键词前缀的指针用来做输出,或者用来做输入输出。但是最近做项目的时候,我有一个新感悟,就是指针在函数形参入口处,也有第四种作用,那就是用来给函数内部临时借用外部大片的全局变量数组,虽然这第四种作用本质上还是指针的输入输出作用,但是其实在调用者的角度来看,还是有很明显的差别的,因为调用者此时使用的指针,它纯粹是给外部全局变量的一个入口,比如在进入函数时,虽然它此时是属于输入,但是跟一般的输入不一样,因为此时输入的全局变量可以是随机数,从这个角度来看,跟我们平时用来做输入的全局变量数组是有差别的。而函数执行结束后,调用者也不关心这片全局变量内部的数据数值。因为它就不是用来做“输入”和“输出”的,而是临时借一片外部全局变量给函数内部做中间变量而已。给大家看看我最近这个函数例子:

原始数组.png
再给大家看看,我如何在函数内部借用这个全局变量数组。

函数入口.png
函数调用.jpg


如果对于我们一开始不懂指针的初学者,我们也是可以实现这些功能的,我们只是直接把几十个全局变量应用在了函数内部。但是,有了形参指针知识之后,为了让函数的输入口和输出口更加清晰,就可以把这个几十个全局变量通过一个形参的形式传递进去,让大家在看到这个函数的形参的时候,就知道他内部大概要用多少个全局变量。如果没有这个过程,突然在内部添加全局变量,就是在表达上比较唐突,但是功能是一样的。


那么,如果是初学者,他们那种最粗暴的方法是什么的,我给大家模仿一下:

初学者.jpg
综合对比:
(1)第一种,在函数内直接调用全局变量数组。不打招呼,不写欠条,直接调用。初学者常常这么干。可读性不强。
(2)第二种,通过函数形参入口的指针来传递首地址。这种表达方式很清晰很有可读性,借用别人一块地,就写好欠条,借多长时间,什么时候还,特别清晰。绅士的风度。



乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2018-6-24 07:30 , Processed in 0.115682 second(s), 29 queries .

快速回复 返回顶部 返回列表