gpt4 book ai didi

c++ - 返回 (a) 与返回 a

转载 作者:可可西里 更新时间:2023-11-01 15:29:39 26 4
gpt4 key购买 nike

我在我一直在查看的 C 和 C++ 代码中都看到了。

有什么区别?

最佳答案

完全没有区别。

官方语法是return something; 或者return; 当然是关键字,不是函数。

因此,您不应将其读作 return( a );,而应将其读作 return (a);我认为区别很微妙但很明显,括号不适用于 return 而适用于 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 Studio 2010)的编译器一起使用。

这也与 typeid 关键字的使用形成对比:

int a;
std::cout << typeid(a).name() << std::endl; // will print "int"
std::cout << typeid((a)).name() << std::endl; // will print "int" !!!!

关于c++ - 返回 (a) 与返回 a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7943052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com