C语言函数中能否有两个return?

2024-11-16 03:33:36
推荐回答(4个)
回答(1):

不能,函数的返回值只能有一个,所以程序执行到第一个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;
}

回答(2):

C语言函数不能两个值,不过有变通的办法,如下:
void f(int a,int b, int &c, int &d)
{
c = a + b;
d = a - b;
}

main()
{
int a = 5;
int b = 3;
int c,d;
f(a,b,c,d);
printf("%d,%d", c, d);
}
楼主参考。

回答(3):

函数中不能一次返回两个值。就是同时return 两个数据。

你可以将a,b的地址传入,这样在f函数中也能改变a,b的值了。
#include
void f(int &a,int &b)
{
int c,d;
c = a + b;
d = a - b;
a=c;
b=d;
}
void main()
{
int a = 5;
int b = 3;
f(a,b);
printf("%d,%d",a,b);
}

回答(4):

只有第一个return有效;
可以定义struct返回型;