return只能返回一个值吗?

可不可以returnj,k;像这样呢?... 可不可以
return j,k;
像这样呢?
展开
 我来答
L_o_o_n_i_e
2008-12-04 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5229万
展开全部
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();
}
ryw12403
2008-12-04 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2101万
展开全部
如果不是传回地址的方法,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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lichperson
2008-12-04 · 超过20用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:0
展开全部
只能返回一个值,你可以用指针来修改多个值啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
552091736
2008-12-04 · TA获得超过389个赞
知道答主
回答量:138
采纳率:0%
帮助的人:0
展开全部
不可以
想返回多个值,可以用指针或者是引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式