0


C/C++的数组作为函数参数传递时需要注意的问题

在初学者学习函数时会遇到非常多的规范问题上的困扰,其中尤其是数组作为函数参数时的问题,下面是常见的3种正确的传递方式以及为什么要这样写的解释

一:函数体里的是一个形式参数,只有把实际参数赋值给它,它才具有准确的生命,这个参数a不一定是主函数的a他也可以是b是c是d;它是一个形式上的参数,之所以把它和主函数的传入的那个参数保持一致是为了防止自己迷。

下面是一个用整型去小小的解释

二:另外一种是第一种的一个小小的特殊的小补充,在形式一中我们明白在函数体中传递的是一个形式参数我们常常把它和主函数中的实际参数写成一致是为了方便,也是属于计算机操作人员去主动的去给函数的各种参数赋值和规范,但是计算机也是非常的聪明的它也可以靠自己去主动的理解。

如下例:

在此例中我们并没有遵守第一种的规范写法但是得到的结果是正确的,是因为当我们刚刚在函数中写入参数a时(即和主函数参数写的一致时),计算机一脸懵逼,写的这是什么玩意这牛马就是一个简单的整型啊,计算机可不认为这个a是主函数的那个代表地址的a,这个a就是一个普普通通的整型的但是当你输入[]这个玩意时计算机恍然大悟,它悟了,它知道了这个a是主函数的那个存放地址的a,等于是你把整个数组传进去了

三:双指针类型作为函数参数的传入的最典型的一个小示范

如上例是不是又迷了怎么一会a作为函数参数,一会a[],又一会是a[]这就很凌乱;

注意这个三下的示例是双指针型a[]是存储的一组指针变量,这个时候a是存储地址的地址啊;a[i]依旧是地址,a[]这种写法作为函数参数的传递是第一种的写法的深究与继续探讨,(建议把第一种情况打下来,然后想一想,再作探究)。

终于到了末尾,我们除了解释数组是如何经历一系列卑微的当形参传入的。

还要探究如何在主函数里把实际参数传递给形式参数,如下图;

其实那么无论怎样我们都是把函数的名传递过去,其实这个道理和你传递一个char型数组是不是总是直接cin>>数组名啊,这个道理是一样的计算机会自动的给你留位置让你输入,

但是第三种你双指针怎么也是输入的是地址名啊,我们前边提到了欸,a[i]是存储地址的,那么a岂不是存储a[i]的地址,它是存储地址的地址啊(套娃),另外计算机是不支持&加地址名获取地址的,因为首先计算机会自动的把地址名前加一个默认的地址符号你再加一个是不是计算机会认为你想表达的是&&,这个符号是什么是并的意思啊。所以注意一下这个小问题,建议自己打打代码找找感觉思考思考

标签:

本文转载自: https://blog.csdn.net/weixin_53262377/article/details/119205637
版权归原作者 11就是11啦 所有, 如有侵权,请联系我们删除。

“C/C++的数组作为函数参数传递时需要注意的问题”的评论:

还没有评论