我已经在C和C++代码中看到了我一直在看的代码。
有什么关系?
发布于 2011-10-30 11:06:15
一点也没有区别。
官方语法是return something;或return;,当然它是一个关键字,而不是一个函数。
由于这个原因,你不应该把它理解为return( a );,但作为return (a);,我认为区别是细微的,但很明显,括号不适用于return( a );,而适用于a。
((((a))))与(a)相同,也与a相同。
你也可以写一些像这样的东西。
int x = (((100)));你也可以写一些像这样的东西。
printf("%d\n", (z));正如有人在评论中所说,现在,随着C++11 ( C++语言的2011版)的出现,有了新的运算符decltype。这个运算符引入了一个新的示例,其中(a)不同于a,这是相当深奥的,有点脱离主题,但我添加这个示例只是为了完整。
int x = 10;
decltype(x) y = x; // this means int y = x;
decltype((x)) z = x; // this means int& z = x;
y = 20;
z = 30;
std::cout << x << " " << y << " " << z << std::endl;
// this will print out "30 20 30"正如我所说的,学生对此不会感兴趣,因为它太深奥了,而且它只能与至少支持部分C++11标准(如GCC 4.5+和Visual Studio2010)的编译器一起工作。
这也与typeid关键字的使用形成对比:
int a;
std::cout << typeid(a).name() << std::endl; // will print "int"
std::cout << typeid((a)).name() << std::endl; // will print "int" !!!!发布于 2011-11-02 21:10:10
编写return x表明程序员理解return的含义。而return(x)则表示程序员错误地认为return是一种函数。
发布于 2011-10-30 22:58:42
return不是一个函数。
这更多的是一个风格上的问题。我个人不会在return语句中使用括号,除非它显示了操作顺序。
示例
return a;
return (a || b);
return (a && (b || c));
return (a ? b : c);https://stackoverflow.com/questions/7943052
复制相似问题