当前位置: 首页 > 面试题库 >

括号内的返回值-为什么?

彭英逸
2023-03-14
问题内容

我经常看到这样的代码(C,C ++,有时甚至是Java):

return (value);

我看不到这些括号有任何好处。所以我的问题是,程序员是否假定return函数是某种以返回值作为参数的函数,或者确实有这些括号有意义的情况吗?

我了解这里已经提出了类似的问题,但这仅与ANSI C有关。我想知道是否存在某些特定于C ++或Java的方面尚未得到解答。


问题答案:

关于C

括号放在有表达式的位置,并且希望返回值是表达式的值。 即使这样,也不需要括号。 写这样的东西完全可以

return x + y;

程序员的确使它return (x + y);更具可读性。

因此,加括号是一个见解和实践问题。

关于C ++

在某些情况下,括号很重要。引用这个问题

int var1 = 42;
decltype(auto) func1() { return var1; } // return type is int, same as decltype(var1)
decltype(auto) func1() { return(var1); } // return type is int&, same as decltype((var1))

您可以看到返回的值是不同的,这是由于括号引起的。您可以通过此答案进行详细了解。

对于Java,括号没有任何区别。

编码约定建议与

return x + y;

注意: 我对Java和C 不太了解。我的答案中有关Java和C 的所有内容均取自其他答案。我这样做是为了合并三种语言的不同约定。



 类似资料:
  • 问题内容: 在ANSI C代码中,经常可以看到括号将单个返回值括起来。 像这样: 在这种情况下,为什么要在返回值周围使用()?有任何想法吗?我看不出有什么理由。 问题答案: 确实没有理由……这只是古老的惯例。 为了节省空间,程序员通常会在返回行中而不是在返回行中进行最后的数学运算,并且确保大多数都位于括号内,以便更轻松地看到返回的是单个语句,如下所示: 代替 圆括号成为一种习惯,并且被卡住了。

  • 根据JSON规范,表示null值的正确方法是文字。 预期结果: 实际结果:

  • 为什么numeric_limits::min返回一个负值为int,但正值为例如浮动和双? 输出: 参考文献: 返回可由数字类型T表示的最小有限值。 对于具有反规范化的浮点类型,min返回最小的正规范化值。请注意,这种行为可能是意外的,特别是与整型类型的min行为相比。要查找没有值小于它的值,请使用。 min仅对有界类型和无界无符号类型有意义,也就是说,表示无穷多个负值的类型没有意义的最小值。

  • 我在客户端使用vue、vue路由器,在服务器端使用express、morgan(MEVN应用程序) 在客户端我用vue cookie设置cookie 在服务器端,我使用CookieParser 所以,在应用程序。我有这样的代码 并且,在文件中,我有这样一个GET请求的代码 问题是,var loginHash=req.cookies['Login'];总是返回未定义的,即使我有登录cookie 添加

  • 问题内容: 我是一名编程初学者,对函数的返回值有疑问。 我正在学习Java。 我已经附上了我的书中具有经典选择排序功能的代码。 现在显然来自本书的代码可以正常工作。但是,主要功能中的以下三行是我的问题的基础: int [] a = new int [] {1,9,2,8,3,7,4,6​​,5}; 排序(a); if(ascending(a))System.out.println(“ Works”

  • 初学者问题,很抱歉,如果这不是一个合适的地方,请尝试学习在中逻辑是如何工作的,我无法理解这一点 我希望它会说“是的!”如果是A、A、D或D,而是z,但出于某种原因,它会说“是的!”无论第一个符号是什么,都会断开,并且只检查第二个符号是否为z。