4个回答
展开全部
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 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<y)不成立,就调用
else{
h=z+100;
return h;
}
传回h
但你若一定想传回不同值在不同的调用,可以加一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<y)不成立,就调用
else{
h=z+100;
return h;
}
传回h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能返回一个值,你可以用指针来修改多个值啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以
想返回多个值,可以用指针或者是引用
想返回多个值,可以用指针或者是引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询