Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中MyType(myVar)声明的意义是什么+;?_C++ - Fatal编程技术网

C++ C+中MyType(myVar)声明的意义是什么+;?

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(){

在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(){
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