| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1130 人关注过本帖
标题:C中有关return的问题
只看楼主 加入收藏
whw123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-11-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
C中有关return的问题
函数调用中

return 是否只能返回一个值,

若要返回多个值应该怎么做?



搜索更多相关主题的帖子: return 
2009-11-16 21:36
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:2 
是只能返回一个值,要返回多个值的话,可以通过全局变量、传地址过子函数,通过改变变量地址对应的值来达到传值的目的···
#include<stdio.h>
void demo(int *a , int *b)   //  通过传地址
{
    *a = 3;
    *b = 5;
}
int main(void)
{
    int a = 1, b=1;
    demo(&a, &b);
    printf("%d%d",a,b);
    return 0;
}

2009-11-16 21:45
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:2 
LS正解
全局变量看看这个例子吧:
程序代码:
#include <stdio.h>
int daynum[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
                             {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; 
int day_of_year (int year, int month, int day) /* 将输入的年月日转换成输入日是输入年的若干天*/
{   
    
    int leap = year % 4 == 0 && year % 100 != 0 || year % 400 ==0, i = 1;
     while (i < month) day += daynum[leap][i], ++ i;
    return day;
    }
此例全局变量没有改变值,如果你通过某种方式改变了全局变量,那么现在全局变量的值就是你刚修改过的值

想象力征服世界
2009-11-16 22:27
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
简单点说,就是传递地址。
2009-11-16 23:30
林语
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:184
注 册:2009-8-29
收藏
得分:2 
return 语句只有一个返回值
但是可以通过指针改变主调函数中变量的值
2009-11-17 11:38
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
收藏
得分:2 
定义一个空的函数

再用是全局变量

老师说 : 好好读书
2009-11-17 12:26
human84
Rank: 3Rank: 3
来 自:哈尔滨 / 重庆
等 级:论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
收藏
得分:2 
用传递地址,比如
int max()
{
int x,y;
scanf("%d%d",&x,&y);
if(x>y)
return x;
else
return y;
}
主函数调用就用:c=max(a,b);   return只能返回一个值。
而:
void max(int x,int y)
{
if(x>y)
printf("%d",&x)
else
printf("%d",&y)
}
这时主函数调用时就用:max(a,b);  利用这个原理就可以起到返还多个值的目的。
也是新人,这么理解的。
2009-11-17 17:16
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:2 
办法倒是很多,但
return 还是只能返回一个
这也符合要求
a = max(a,b);
如果可以返回多个值,那那个值赋给a
2009-11-18 20:36
千叶林
Rank: 2
等 级:论坛游民
帖 子:26
专家分:18
注 册:2010-1-27
收藏
得分:0 
我还以为是定义结构体数组呢。。
2010-01-27 11:19
快速回复:C中有关return的问题
数据加载中...
 
   



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

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