Naw*_*waz 13

int *a = new int;
Run Code Online (Sandbox Code Playgroud)

a指向默认初始化对象(在这种情况下,它是未初始化的对象,即根据标准,该值是不确定的).

int *a = new int();
Run Code Online (Sandbox Code Playgroud)

a指向值初始化对象(在这种情况下,它是零初始化对象,即根据标准值,该值为零).

  • C++11§8.5,p7,C++11§8.5,p5和C++11§8.5,p6分别用于值初始化,零初始化和默认初始化,以防OP感兴趣(我非常怀疑它. (4认同)
  • 请注意,测试可能不会暴露这种差异:与自动存储不同,动态分配的内存通常在简单的测试程序中最终为零,并且在较早的内存重用时仅在较大的程序中包含"垃圾". (4认同)

jua*_*nza 6

第一个变量default-initializes动态分配int,对于内置类型,例如int不执行任何初始化.

第二个变量值初始化它,这int意味着零初始化,给它值0.