return只能返回一个值吗?

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:31:39
可不可以
return j,k;
像这样呢?

return 只能返回一个值:一个数值或一个指针值。
需要返回多个值,简单的办法是通过函数参数传递。

-----------------------------------------------
return j,k; 完全可以,语法正确,因为它返回的是一个表达式的值。这里是“逗号表达式”:
j,k;
逗号表达式的“计算”结果是用逗号分隔的最后一个表达式,这里j是一个表达式,k是一个表达式;
return j,k; 返回k
return k,j; 返回j

你可以试试:
#include <stdio.h>
int fun()
{
int k=2,j=3;
return j,k; // 或试试 return k,j;
}

void main()
{
int x;
x = fun();
printf("%d",x);
getch();
}

如果不是传回地址的方法,return 一次只能传回一个值,
但你若一定想传回不同值在不同的调用,可以加一if语句。

用地址当参数传入函数

int max(int x,int y,int *z,int *h)
{
*z=x>y? x:y;

*h=*z+100;

}
调用时这样就行.
max(a,b,&c,&d);

int max(int x,int y,int z,int h)
{
if(z<x&&z<y){
z=x>y? x:y;
return z;
}
else{
h=z+100;
return h;
}
}
这样当你第一次调用函数后z值为两面数中的大者,第二次调用时条件if(z<x&&z<