return函数既问题

gameman_2005 2007-11-20 11:26:04
return函数在返回两个值时,如return(x,y)
在主函数要怎样写这个程序呢?才能将x,y的值分开赋给两个变量?
...全文
191 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
saberyan 2007-11-22
  • 打赏
  • 举报
回复
传地址用指针*变量例如:
#include <stdio.h>
void swap(int *a,int *b)
{
*b=*a+*b;
*a=*b-*a;
*b=*b-*a;
}
void main()
{
int x,y;
printf("please input two number:");
scanf("%d,&d",&x,&y);
swap(&x,&y);
printf("the new two number is: %d,%d",x,y);
}
这个使用指针实现了2个数的互换. PS:C语言


晨星 2007-11-22
  • 打赏
  • 举报
回复
貌似楼主问的是C语言,而许多人用C++回答了。
shager 2007-11-22
  • 打赏
  • 举报
回复
一定要返回?用引用类型的参数也可以吧?
gameman_2005 2007-11-22
  • 打赏
  • 举报
回复
哦~原来是这样~怪不得我看不明~是啊~我问的是C语言~
NET小工 2007-11-21
  • 打赏
  • 举报
回复
要想在从函数中改变两个以上的主函数数据,要么用传址调用,要么形参用引用,更邪门的是用全局变量。
如果非要用return,就返回一个包含两个成员的结构体,然后主函数将成员值赋值给要更新的变量,看着办吧楼主。
顺便多嘴一句,return不是一个函数。
huanleyezi 2007-11-21
  • 打赏
  • 举报
回复
return是函数吗?能返回两个值?
wa_ning1982 2007-11-21
  • 打赏
  • 举报
回复
传地址用指针*变量 引用使用&引用变量
例如:
#include <iostream.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int x,y;
cout<<"please input two number:"<<endl;
cin>>x>>y;
swap(&x,&y);
cout<<"the two number is:"<<x<<" "<<y<<endl;
}
这个使用指针实现了2个数的互换.

#include <iostream.h>
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int x,y;
cout<<"please input two number:"<<endl;
cin>>x>>y;
swap(x,y);
cout<<"the two number is:"<<x<<" "<<y<<endl;
}
这个函数用引用实现了2个数的互换.




gameman_2005 2007-11-21
  • 打赏
  • 举报
回复
晕~原谅我是个新手~只学到指针~位运算和结构体还没有看得明白~~
就是不知道什么叫形参引用
PcrazyC 2007-11-21
  • 打赏
  • 举报
回复
要返回两个值或以上的话,用指针或引用吧
PcrazyC 2007-11-21
  • 打赏
  • 举报
回复
由于return只能返回一个值,这个时候编译器会将X,Y中的逗号作为逗号运算符,而不是参数分隔符,所以返回的值就是Y的值
gameman_2005 2007-11-21
  • 打赏
  • 举报
回复
好像是这样~","好像是运算符~那么return语句就只能返回一个函数值吗?
gameman_2005 2007-11-21
  • 打赏
  • 举报
回复
我打错了~return是语句~嘻嘻~
传址调用说的是指针吧~什么是形参用引用啊?
要怎么把成员值分别赋给要更新的变量啊?如果我用字符数组可以吗?
hai040 2007-11-21
  • 打赏
  • 举报
回复
return(x,y)实际上是return y,其中的","是运算符
gameman_2005 2007-11-21
  • 打赏
  • 举报
回复
谢谢~楼上~
pptor 2007-11-21
  • 打赏
  • 举报
回复
用传址调用,要么形参用引用
或一个包含两个成员的结构体
飞哥 2007-11-21
  • 打赏
  • 举报
回复
传回的是一个值,ls说的对,逗号表达式

可以使用结构,或者是通过参数返回
suyouxin 2007-11-21
  • 打赏
  • 举报
回复
return(x,y);

逗号标识符,总是等于最右边一个表达式的值
也就是说相当于 return y;

返回两个值用if或者?判断

return sdfad > 0 ? x : y;

if (sdfad > 0)
return x;
return y;
wh_peng 2007-11-21
  • 打赏
  • 举报
回复
不能传回两个值
wKernel 2007-11-21
  • 打赏
  • 举报
回复
return 传回两个值,思路好像有点问题。可以考虑用引用或其它。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧