使用int()进行变量初始化

时间:2013-09-13 07:33:24

标签: c++ variable-initialization

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

int a(0);
cout<<a; 

此代码段的输出为0

另一方面,我使用a

初始化0
int a= int();
cout<<a;

output: 0

然后我试试这个:

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

此时输出为1

实际上int()函数返回的值是多少? 01

2 个答案:

答案 0 :(得分:2)

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

此:

#include <typeinfo>

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

收率:

FiPFivEE

将结果here放在一起:

int ()(int (*)())

答案 1 :(得分:0)

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

int a = int();

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

然而,对于第三个例子,正如许多人所指出的那样,你实际上声明了一个名为a的函数。