以下两行之间有什么区别?
int *a = new int;
int *a = new int();
以下两行之间有什么区别?
int *a = new int;
int *a = new int();
int *a = new int;
a
指向默认初始化的对象(在这种情况下是未初始化的对象,即其值是不确定的,根据标准)。
int *a = new int();
a
指向一个值初始化的对象(在此情况下是零初始化的对象,即根据标准,该值为零)。
int
,对于内置类型(如int
)不执行任何初始化。int
来说意味着零初始化,即赋值为0
。