0

我正在尝试一些不同的初始化变量的方法。

int a(0);
cout<<a; 

此代码段的输出是0.

a以另一种方式,我初始化0

int a= int();
cout<<a;

output: 0

然后我试试这个:

int a(int());
  cout<<a;

这次的输出是1

实际上 int() 函数返回的值是多少? 0或者1

4

2 回答 2

2

我认为您的最后一次尝试 ( int a(int())) 是“最令人烦恼的解析”的一个示例。因此,a是一个函数,而不是一个 int。

这个:

#include <typeinfo>

std::cout << typeid(a).name() << std::endl;

产量:

FiPFivEE

把这个结果放在这里给出:

int ()(int (*)())
于 2013-09-13T07:38:15.083 回答
0

这样做int()会创建一个临时整数并对其进行值初始化。没有特定值的初始化整数的值将为零。所以声明

int a = int();

value 初始化一个临时整数,并将其复制到a.

但是对于第三个示例,正如许多人所指出的那样,您实际上声明了一个名为a.

于 2013-09-13T07:48:08.057 回答