c语言函数能多个返回值吗 c程序函数可以有几个返回值

C语言函数返回2个值首先比喻下函数是什么吧?
函数简单的说就是一个黑箱子似的制造机器,你给他原料(输入参数)它给你制造出产品(函数返回的结果) 。
所以函数的返回值一般就是你想要的结果 。当然有些函数没有返回值,比如输出一句话的函数 , 这函数就没有返回值 。c++用void型表示 。但是求两个数的最大值函数int
max(int
a,
int
b)的返回值就可以是你求的最大的值 。
int
max(int
a,
intb)
{
if(ab)
{
return
a;
}
else
{
return
b;
}
}
其中return返回的值就是函数的返回值 。
c语言中调用函数如何返回多个值?1、通过使用指针,在函数调用时,传递带有地址的参数,并使用指针更改其值;这样 , 修改后的值就会变成原始参数 。
2、通过使用指针返回结果为:
3、通过使用结构:因为结构是用户定义的数据类型;可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值 。
4、通过使用结构返回结果为:
5、通过使用数组,当一个数组作为参数传递时,基地址将传递给该函数,因此无论对数组副本所做的任何更改,都会更改为原始数组 。
6、通过使用数组返回结果为:
C语言函数中能否有两个return?不能 , 函数的返回值只能有一个 , 所以程序执行到第一个return就直接跳出,没有执行return
d;可以使用指针,a,b为入口参数,c,d为出口参数 , 这样就可以解决多个返回值的问题,希望能帮到你 。
#include
void
f(int
a,int
b,int
*c,int
*d)
{
*c
=
a
+
b;
*d
=
a
-
b;
}
int
main()
{
int
a
=
5;
int
b
=
3;
int
c=0,d=0;
f(a,b,c,d);
printf("%d
%d",c,d);
return
0;
}
c语言函数可不可以返回多个值在C语言中,一般情况下函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值 。但在实际很多应用中,我们需要从函数中返回多个值,那我们可以用什么方法实现呢?此时我们可以用三种方法来实现 。
方法一:设置全局变量
全局变量是在函数外部定义的全局变量,它不属于任何一个函数,其作用域是从变量的定义处开始,到本程序文件的结尾 。在此作用域内,全局变量可为各个函数所引用 。当我们需要函数返回多个值时,除了函数体中的return语句返回其中一个之外,其它的返回值我们可以通过定义全局变量来处理 。因为根据全局变量的特点 , 在被调用函数中改变了多个全局变量和值,相当于其主调函数全局变量的值也发生了变化,也就相当于返回了多个值 。
例如:利用一个函数求出正方形的周长和面积 。
#include
double l=0;//定义全局变量l为正方形周长
void f(double a)//定义求面积和周长的函数
{double s;s=a*a;//求面积
l=6*a;//求周长,并赋给全局变量l
return s;//仅返回面积的值
}
void main()
{double a,area;
printf(“请输入边长:");
scanf("%f",a);
area=f(a);//面积的值通过调用f函数返回值
printf(“面积为:%5.2lf\n” , area);
printf(“周长为:%5.2lf\n”,l);//周长即为全局变量l在f函数中改变后的值
}
上面的例子即用全局变量实现了函数中返回多值的情况,这种方式易懂 。但是全局变量用多了会破坏代码的安全性,结构性 , 这主要是全局变量在所有函数中都可以使用,从而其值的变化不确定 , 所以我们要慎用 。

推荐阅读