我正在尝试一些不同的方法来初始化变量。
int a(0);
cout<<a;
此代码段的输出为0
。
另一方面,我使用a
0
int a= int();
cout<<a;
output: 0
然后我试试这个:
int a(int());
cout<<a;
此时输出为1
实际上int()函数返回的值是多少? 0
或1
答案 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
的函数。