扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
数组作为参数是按地址传递的 数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。
成都创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为关岭企业提供专业的网站设计、做网站,关岭网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
通过全局变量来传递数组。声明全局变量用于存储子函数中的数组,此时可以在全局变量作用域中读取调用子函数的数组。
c语言中数组名作为实参传给被调用的函数时,形参获得的是数组的起始地址。还是用例子说话吧。
在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。
要将数组长度作为一个参数传给average函数,不能在average函数内部通过int arrLen = sizeof(a) / 4;来计算数组长度。
修改时,实参数组也同时被修改了。形参数组的元素个数可以省略。
数组可定义为全局变量,函数直接调用。数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名,表示数组首地址,也可通过指针或数组名+数字来传递数组局部地址)。
c语言可以用数组元素的方法或指针的方法调用数组。
把数组名作为实参,传递给子函数即可,这是地址传递,子函数中处理的结果将影响到主函数数组的元素值。课本上“数组做函数参数”部分应该有例子可以参考。
可以这样调,你直接传入了dada数组的地址,注意,你在void write(*prt) 里只要改变了prt[i]的值,dada[i]也是会跟着变的,因为这两个指针指的都是同一块内存,这个初学者很容易犯错。
数组可定义为全局变量,函数直接调用。数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名,表示数组首地址,也可通过指针或数组名+数字来传递数组局部地址)。
如果需要通过函数将改变的结果传回,可以使用指针。
回答个问题不要搞的越来越复杂,下面给个简单的例子,从子函数中将数组传出。图一是利用全局变量传递,图二是利用静态数组来传递。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流