独闷闷网

标题: 新感悟!指针在函数形参入口处的第四种作用,临时借用外部全局变量数组。 [打印本页]

作者: jianhong_wu    时间: 2016-10-9 16:04
标题: 新感悟!指针在函数形参入口处的第四种作用,临时借用外部全局变量数组。
本帖最后由 jianhong_wu 于 2016-10-9 16:09 编辑

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


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





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


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


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








欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2