return是不是在任何情况下都不需要括号?

Mynameiswuyihao 2009-07-15 09:44:59
有的人说return有没有括号都一样,有的人说return后面是表达式就需要括号。
到底是怎样的?
...全文
1501 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixuer_20070803 2009-07-16
  • 打赏
  • 举报
回复
其实都一样,按你的编程习惯吧,
cismylife 2009-07-16
  • 打赏
  • 举报
回复
有没有一样的
love07081403 2009-07-16
  • 打赏
  • 举报
回复
return 2+3-1;不等于return 2+(3-1);则需要
return 2+3;不需要
按的return后表达式 确定
JoyerHuang_悦 2009-07-16
  • 打赏
  • 举报
回复
return_statement ::= RETURN expr SEMI ;

按方法来说,编译器一定把return后的东西当表达式解析,有没有括号就没区别了。
ForestDB 2009-07-16
  • 打赏
  • 举报
回复
没区别return后接表达式,含有()运算符的表达式也是表达式的一种。
padiu01 2009-07-16
  • 打赏
  • 举报
回复
括号有这么重要吗?为什么要纠结于形式呢?
return的用法,分为两种,一种是在被调用的函数中,一种是在主函数中。
在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。
而在主函数中,如果碰到return语句,那么整个程序就会停止,退出程序的执行。C++中我们一般使用return 0; 表示函数正常执行结束。
这两种用法中,主函数里没有特别要说明的,而在被调用的函数中,只要你能保证返回的结果是你需要的,括号又有什么关系?!
ssssstephen 2009-07-16
  • 打赏
  • 举报
回复
上机调试一下,应该没区别
jhony_lee 2009-07-16
  • 打赏
  • 举报
回复
还是加上比较放心
xutaozero21 2009-07-16
  • 打赏
  • 举报
回复
习惯问题吧,如果表达式比较复杂,加上比较好
mu_yang 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ForestDB 的回复:]
没区别return后接表达式,含有()运算符的表达式也是表达式的一种。
[/Quote]

我认为那个()是分隔符
不是运算符
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 padiu01 的回复:]
括号有这么重要吗?为什么要纠结于形式呢?
return的用法,分为两种,一种是在被调用的函数中,一种是在主函数中。
在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。
而在主函数中,如果碰到return语句,那么整个程序就会停止,退出程序的执行。C++中我们一般使用return 0; 表示函数正常执行结束。
这两种用法中,主函数里没有特别要说…
[/Quote]
没啥区别,功能都一样!
「已注销」 2009-07-16
  • 打赏
  • 举报
回复
一个样
emyueguang 2009-07-15
  • 打赏
  • 举报
回复
没有区别!
lzp729 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Mynameiswuyihao 的回复:]
引用 3 楼 cheng_fengming 的回复:
不是,许多情况下是不需要括号的
如:
return 0;  //相当于return (0);
return head;  //相当于return (head);


许多情况下???
拜托不要讲这么含糊,什么叫许多情况下?
[/Quote]

那么就让我来一言以蔽之, 你想要加就加, 不想加就不加, 没区别
AlcatrazX 2009-07-15
  • 打赏
  • 举报
回复
没区别的~看个人的风格了
austin_minny 2009-07-15
  • 打赏
  • 举报
回复
当然,除非要return的表达式里自身有括号。总之貌似对于return本身是没区别的
Mynameiswuyihao 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cheng_fengming 的回复:]
不是,许多情况下是不需要括号的
如:
return 0; //相当于return (0);
return head; //相当于return (head);
[/Quote]

许多情况下???
拜托不要讲这么含糊,什么叫许多情况下?
taodm 2009-07-15
  • 打赏
  • 举报
回复
这个是(0)相当于0吧,和return没关系吧。
[Quote=引用 3 楼 cheng_fengming 的回复:]
不是,许多情况下是不需要括号的
如:
return 0;  //相当于return (0);
return head;  //相当于return (head);
[/Quote]
飞天御剑流 2009-07-15
  • 打赏
  • 举报
回复
有没有括号都一样的
cheng_fengming 2009-07-15
  • 打赏
  • 举报
回复
不是,许多情况下是不需要括号的
如:
return 0; //相当于return (0);
return head; //相当于return (head);
加载更多回复(2)

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧