| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 471 人关注过本帖
标题:[讨论]关于return的问题
只看楼主 加入收藏
deamonhdb
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-7
收藏
 问题点数:0 回复次数:5 
[讨论]关于return的问题

今天做堆栈时不太明白return的用法
具体字函数是这样的:
datatype pop(stack*s,datatype&e)
{
e= s->elements[s->top];
s->top--;
return (1);

}
但是改成return(2) return(3) return(4) return(5)....return(100)结果都是正确的,用DEBUG单步跟踪,发现过程没区别
但是如果只是return 编译时会提示 函数必需有返回值,也就是说只有return不是return (0),我甚至换成换成负数return(-1)
都是正确的 return(0)也是正确的
问一下,return的具体用法,有没有什么特殊的用途?

搜索更多相关主题的帖子: return 
2007-10-29 15:20
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这个函数里面返回什么都没有关系,不会有任何错误.
但我看这个函数应该是要返回栈顶元素值的吧.

return 是返回程序要求的值,对主函数,返回0表示正常结束,其他是非正常.

倚天照海花无数,流水高山心自知。
2007-10-29 16:00
deamonhdb
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-7
收藏
得分:0 

恩,这样说也可以,但是看看下面的程序,是老师PPT的内容:

uint PopS(seqstack *S,datatype&e)
{ if (EmptyS(S))
{ print (Stack Underflow);
return 0;
} //下溢
else
{ e= S->elements[S->Top];
S->Top--;
return 1;
}
}
那怎么解释呢?
老师说return 1有两层意思,1是说明有返回值,2是返回的数正常
这样对吗?好像与版主说的相反
exit(0)可以用版主的说法解释,用在return上好像不行
2007-10-29 16:31
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 
return的值是自己定义的,用于其调用函数来判断执行的结果。不知对不对
2007-10-29 16:42
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
还好我是针对主函数才说的。

其他函数的返回值的意义由自己定义。

倚天照海花无数,流水高山心自知。
2007-10-29 17:06
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
在C语言中,return 的作用是从被调用的函数返回到调用函数里,继续执行程序,并且,如果需要的话,它可以带回一个值,这个值就是被调用函数的操作结果。

2007-10-29 17:07
快速回复:[讨论]关于return的问题
数据加载中...
 
   



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

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