C++ C+中MyType(myVar)声明的意义是什么+;?
在c++11标准中,我们可以用一种不同寻常的方式声明变量。我们可以将C++ C+中MyType(myVar)声明的意义是什么+;?,c++,C++,在c++11标准中,我们可以用一种不同寻常的方式声明变量。我们可以将myVar声明为int(myVar)而不是int myVar。这有什么意义 #include <iostream> using namespace std; int main() { int(myVar); myVar = 1000; cout << myVar << endl; return 0; } #包括 使用名称空间std; int main(){
myVar
声明为int(myVar)代码>而不是int myVar
。这有什么意义
#include <iostream>
using namespace std;
int main() {
int(myVar);
myVar = 1000;
cout << myVar << endl;
return 0;
}
#包括
使用名称空间std;
int main(){
int(myVar);
myVar=1000;
当然可以。我甚至可以做到:
int (main)()
{
}
括号用于在C和C++中分组事物。它们通常不包含超出分组的附加含义。函数调用/声明/定义有点特殊,但是如果您需要说服我们不允许在其中省略它们,那么只需看看Ruby,其中函数调用中的括号是可选的。
这不一定有什么意义。但有时能够加上一些理论上不必要的括号有助于使代码更易于阅读。当然,在你的特定示例中,当然在我的示例中也不是这样
#include <typeinfo>
#include <iostream>
int main(void)
{
int *first_var[2];
int (*second_var)[2];
std::cout << typeid(first_var).name() << std::endl;
std::cout << typeid(second_var).name() << std::endl;
return 0;
}
声明中的括号主要用于与它们在任何地方所做的相同的目的,将应该放在一起的事情分组,而不管语言的默认优先级顺序如何。
当然,只有一个元素的括号相当于只键入该元素,除非括号是必需的(例如函数调用)。C++不会破坏向后兼容性,如果它可以帮助的话
它是从这个语法中发展出来的,所以C++继承了它。< /P>
这种向后兼容性的一个副作用是令人烦恼的解析问题。它们还没有证明有足够的烦恼来证明破坏向后兼容性是合理的。这个答案将通过一个例子得到改进,例如,它将使代码更易于阅读(我想不出这样的问题!)我不理解Ruby…还有:没有括号的函数调用==>Haskell。这在所有版本的C和C++中都是可能的@matt mcnabb你说得对。谢谢。我们正在从MSVC C++03移植到GCC C C++11。这可能是我决定这与标准相关的原因。你对ASSERT(ptr)有什么打算
是什么意思?或者换一种说法:它对MSVC C++03意味着什么?
#include <typeinfo>
#include <iostream>
int main(void)
{
int *first_var[2];
int (*second_var)[2];
std::cout << typeid(first_var).name() << std::endl;
std::cout << typeid(second_var).name() << std::endl;
return 0;
}
A2_Pi
PA2_i