C语言基础:如何把函数处理结果的多个数据返回给主函数

您所在的位置:网站首页 c语言子函数怎么定义 C语言基础:如何把函数处理结果的多个数据返回给主函数

C语言基础:如何把函数处理结果的多个数据返回给主函数

2024-06-12 01:02| 来源: 网络整理| 查看: 265

       当我们在函数处理结束后,需要传一个以上的数据返回给主函数,那我们有几种方法可以使用呢,使用时又有哪些注意事项?让我们跟着正文一起来学习。

 1、形参用数组

       将形参存在数组中,修改数组中内容,可以通过数组将修改结果带出去。形参使用数组,在主函数中我们就可以得到返回的多个值。

#include void test(int arr[]) { int i = 0; for (i = 0; i < 10; i++) { arr[i] = i + 1; } } int main() { int arr[10]; test(arr); int i = 0; //根据打印结果我们可以知道,test函数成功将值带回主函数了 for (i = 0; i < 10; i++) { printf(" %d ", arr[i]); } return 0; }

       我们在test函数中将数组初始化,由打印结果可知,我们成功将函数中的多个数据返回给了主函数。

2、形参用指针

       形参如果用指针,最终指向的是外部的实参,在函数中对指针指向内容进行修改,改变的就是外部的实参。所以可以通过修改指针指向内容,从而将多个数据返回给主函数。

#include void test(int* px, int* py, int* pz) { *px = 5; *py = 2; *pz = 1; } int main() { int x = 0; int y = 0; int z = 0; //根据打印结果我们可以知道,test函数成功将值带回主函数了 test(&x, &y, &z); printf("%d %d %d \n", x, y, z); return 0; }

       我们在test函数中修改指针指向的值,由打印结果可知,我们成功将函数中的多个数据返回给了主函数。

3、用全局变量

       全局变量不受函数的结束而结束,在函数中改变全局变量,主函数中可以看到改变之后的结果。我们在test函数中修改内容,也可以将多个数据返回给主函数。

#include int x = 0; int y = 0; int z = 0; void test() { x = 5; y = 2; z = 1; } int main() { //根据打印结果我们可以知道,test函数成功将值带回主函数了 test(&x, &y, &z); printf("%d %d %d \n", x, y, z); return 0; }

       由打印结果也可以看出我们成功实现了多个数据的传输。

注意: 1、全局变量的好处在于让我们每一个函数都能共享他的数据             2、但是坏处在于数据容易被修改,数据不安全             3、全局变量可以给各个函数直接使用,所以全局变量的控制就比较难,我们建议在自己的代码中尽量渐少对全局变量的使用

错误做法:return 这几个数据

       在实现返回多个数据时,还会有一个常见的误区,想要通过return 多个数来返回多个数据。 这个做法是错误的!

       首先一个函数只能返回一个结果,而且如果return多个数,本质上return 后的多个数组成的是一个逗号表达式。逗号表达式会依次计算,整个表达式的结果是最后一个表达式的结果,所以只返回了一个值。

       由打印结果可看出,test函数返回的是最后一个表达式 z 的值,且x,y,z 的值没有被修改,还是0 ,所以用return多个数的方式来返回多个数据是不可行的。

       以上就是  C语言基础:如何把函数处理结果的多个数据返回给主函数  的全部内容了,有什么想法欢迎评论区留言交流。希望对你有帮助!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3