一、 函数如何得到多个返回值问题解答
二、扩充 局部变量的规则
三、代码及运行结果
一、
问题一:一个函数怎么返回两个值(最大值和最小值)?
答:因为return只能返回一个值,所以可以通过定义max ,min为全局变量满足需求。
问题二:定义max,min为全局变量,就可以实现了吗?或者说,为什么这样会实现?
答:在一个文件中,一些函数引用了全局变量,若改变了某一函数中全局变量的值,其他函数中的全局变量的值也会改变。利用全局变量的特性,可以在函数间传递数据,函数可以得到多个返回值。
二、扩充:局部变量的规则
1,局部变量不会默认初始化。2,编译系统不会为局部变量分配内存单元,调用时分配临时内存单元,调用结束,变量消失。3,不同函数中可以定义同名变量,他们占据不同的内存单元。
4,在函数,复合语句,main()函数中,定义的变量只在各自的函数体中有效。
三、以一组5个数为例,代码如下:
#include#define n 5 //宏定义这组数为5个 int max, min; //定义max min为全局变量 void max_min(int a[n]) { int i; max = min = a[0]; //如果在这里定义变量max,min,此时为局部变量,随函数开始而 for (i = 0; i < n; i++) //产生,随函数结束而消失。 { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } } main() { int a[n]; int i = 0; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } max_min(a); printf("max=%d,min=%dn", max, min); //main()函数中的变量也为局部变量 }
运行结果如下:



