| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:需要同时返回几个值的函数怎么实现?
只看楼主 加入收藏
蓝天飞鸿
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-2
收藏
 问题点数:0 回复次数:7 
需要同时返回几个值的函数怎么实现?
有时需要同时返回几个值,而这些值的类型各不相同,比如有的是数组,有的是一个数值,而在函数调用的事先,又不能知道返回值的大小。在这种情况下怎么实现?
谢谢
搜索更多相关主题的帖子: 函数 
2006-10-02 16:50
yueritian
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-7-26
收藏
得分:0 
写个类吧 然后这个类里边多定义点类型

22岁的我,没有皱纹的我
2006-10-02 17:06
蓝天飞鸿
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-2
收藏
得分:0 
谢谢yueritian! 用类定义我也曾考虑过,只是觉得有时这样做很麻烦,不知道还有没有更好的办法?
2006-10-02 17:27
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

函数的返回值为结构体或类


#include<iostream>
using namespace std;
struct A{
int a;
float b;
}m,n;

struct A fun(int a,float b)
{
m.a=a+b;
m.b=a-b;
return m;
}

int main()
{
int a=5;
float b=3.0;
n=fun(a,b);
printf("%d,%f\n",n.a,n.b);
return 0;
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-02 18:19
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
还可以用引用或者地址传递来实现。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-10-02 21:36
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
比如:
#include<iostream>
using namespace std;

void fun(int a,float b, int & retA, float & retB)
{
retA = 2*a;

retB = a*b;

}

int main()
{
int a=5;
float b=3.0;
int retA;
float retB;
fun(a,b, retA, retB);
printf("%d,%f\n",retA, retB);
return 0;
}

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-10-02 21:41
蓝天飞鸿
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-10-2
收藏
得分:0 
非常感谢unicorn和Kai,这两个例子很有启发意义!
祝国庆、中秋快了!
2006-10-02 23:00
tapasya
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-3
收藏
得分:0 
用指针或引用

C Free
2006-10-03 14:19
快速回复:需要同时返回几个值的函数怎么实现?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047641 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved