| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1664 人关注过本帖
标题:怎样在函数中返回两个值呢?
只看楼主 加入收藏
汐杨
Rank: 2
等 级:论坛游民
帖 子:27
专家分:13
注 册:2010-7-26
结帖率:100%
收藏
 问题点数:0 回复次数:13 
怎样在函数中返回两个值呢?
return 只能反回一个值,那怎样返回两个呢?
搜索更多相关主题的帖子: 函数 
2010-08-15 09:15
MoonyonG
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-4-2
收藏
得分:0 
两个 return
2010-08-15 09:29
ylx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-8-12
收藏
得分:0 
函数名一般只能返回一个值,但可以通过参数返回其它自己想返回的值,这时参数必须是你想得到值的地址(即所谓按地址传递,当然你想得到改变的
指针时应当以指针的指针作为参数),例如:
int parameter=0;
int *p=&parameter;
int function(int* p)
{
······
}
这样函数就可以得到两个返回值了(函数中若改变*p的值,那么parameter也就改变了)
2010-08-15 09:43
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
我们有多种办法实现函数间多个数据的双向传递:
1。全局变量方式
全局变量方式是利用在主调函数和被调函数中均有效的全局变量,在主调函数和被调函数之间任意传递数据。
2。参数方式
是在形参和实参之间传递数据,是从主调函数向被调函数传递,即由实参传递给形参,而且传递的数据可以是值,也可以是地址,即可分为值传递和地址传递。
地址传递
参数方式进行地址传递时,形参只能是指针变量或数组名,相应的实参可以是变量的地址、指针变量、数组名、函数名。注意,由于传递给形参的是地址,而使相应的形参和实参具有相同的地址,则形参所指向的对象变了,相应实参所指向的对象将随之改变。


[ 本帖最后由 jack10141 于 2010-8-15 10:39 编辑 ]

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-15 10:37
令狐虫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-8-15
收藏
得分:0 
用指针或者数组

力争独领C语言编程风骚!
2010-08-15 10:53
promising
Rank: 3Rank: 3
来 自:上海
等 级:论坛游侠
帖 子:87
专家分:147
注 册:2009-8-31
收藏
得分:0 
回复 楼主 汐杨
可以把函数形参定义成引用类型,如 int &a
也可以把形参定义成指针类型,如 int *pa

一个函数一般只能返回一个值,
故只能通过,另外的方法来实现返回两个值~~~

向前走着……
2010-08-15 10:58
小王爷
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2010-8-14
收藏
得分:0 
可以用结构体
struct stu
{
    int ..
    char ..
}student;
student *fun()
{
......
return ...
}
这样既可以返回两个
2010-08-15 13:53
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:0 
void *p=malloc(8)
return p;

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-15 14:58
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
五花八门的各种方法基本上都说到了~
2010-08-15 15:28
ylx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-8-12
收藏
得分:0 
群众的智慧就是厉害啊!!
2010-08-15 16:04
快速回复:怎样在函数中返回两个值呢?
数据加载中...
 
   



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

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