“int * a = new int”和“int * a = new int()”之间有什么区别?

时间:2013-10-06 21:13:25

标签: c++

以下两行有什么区别?

int *a = new int;

int *a = new int();

2 个答案:

答案 0 :(得分:13)

int *a = new int;

a指向默认初始化对象(情况下未初始化对象,即值为根据标准不确定

int *a = new int();

a指向值初始化对象(情况下零初始化对象,即值为根据标准,

答案 1 :(得分:6)

第一个变量默认初始化动态分配的int,对于内置类型(如int),它不会执行任何初始化。

第二个变量 value-initializes int表示零初始化,赋值为0