| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:return 问题
只看楼主 加入收藏
jingzitakk66
Rank: 1
等 级:新手上路
帖 子:198
专家分:0
注 册:2009-5-1
结帖率:98.68%
收藏
已结贴  问题点数:10 回复次数:9 
return 问题
c++ primer中文版246页讲解return的 “小心地雷”中的这句话无法理解:在包含return语句的循环后无return是危险的。

为什么危险呢,系统不会像c语言一样自动添加return吗?
搜索更多相关主题的帖子: return 
2010-03-16 09:19
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:5 
以下是引用jingzitakk66在2010-3-16 09:19:17的发言:

c++ primer中文版246页讲解return的 “小心地雷”中的这句话无法理解:在包含return语句的循环后无return是危险的。

为什么危险呢,系统不会像c语言一样自动添加return吗?
不会的,谁告诉你C会自动添加return?
2010-03-16 09:25
jingzitakk66
Rank: 1
等 级:新手上路
帖 子:198
专家分:0
注 册:2009-5-1
收藏
得分:0 
回复 2楼 秀痘魔导士
哦,谢谢,虽然不自动加return,但程序结束不是自动返回吗,应该没什么危险啊
2010-03-16 09:56
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
以下是引用jingzitakk66在2010-3-16 09:56:47的发言:

哦,谢谢,虽然不自动加return,但程序结束不是自动返回吗,应该没什么危险啊
逻辑上可能会有问题

程序代码:
if(a > b )
{
    DoSomething();
    //return; 
}

DoOtherThings();



不return当然会跑到下一个语句,可能对程序逻辑上造成变动。
2010-03-16 13:01
jingzitakk66
Rank: 1
等 级:新手上路
帖 子:198
专家分:0
注 册:2009-5-1
收藏
得分:0 
回复 4楼 秀痘魔导士
这个我也明白啊,但c++ primer里面应该是其他意思吧,呵呵,我也不清楚了。看看吧,没有其他人回答我就关帖了。
2010-03-16 13:17
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
以下是引用jingzitakk66在2010-3-16 13:17:13的发言:

这个我也明白啊,但c++ primer里面应该是其他意思吧,呵呵,我也不清楚了。看看吧,没有其他人回答我就关帖了。
没什么意思的,不要把这本书想的多深奥,这本书就是最适合入门的。
2010-03-16 13:19
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:5 
程序代码:
int fun(int a[],int n)          //一个函数判断数组a中的数是否都》=零
{
    for(int i=0;i<n;i++)
   {
        if(a[i]<0)         //若有不符合的返回一个值
           return 0;
    }
    return 1;            //若都大于等于零,返回另一个值,, 应该说的是这个return  ;
}

离恨恰如春草,更行更远还生。
2010-03-16 13:29
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
楼上的例子合适!

★★★★★为人民服务★★★★★
2010-03-16 14:25
jingzitakk66
Rank: 1
等 级:新手上路
帖 子:198
专家分:0
注 册:2009-5-1
收藏
得分:0 
回复 7楼 玩出来的代码
谢谢大家
2010-03-16 15:35
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:0 
以下是引用玩出来的代码在2010-3-16 13:29:11的发言:

int fun(int a[],int n)          //一个函数判断数组a中的数是否都》=零
{
    for(int i=0;i<n;i++)
   {
        if(a<0)         //若有不符合的返回一个值
           return 0;
    }
    return 1;    ...



支持下。。
最后一个return不能不写。这也是个好习惯。
2010-03-17 12:25
快速回复:return 问题
数据加载中...
 
   



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

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