《C++ Primer》(第四版)P117里面有一段话:
也可使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化
int *pia2 = new int[10](); //array of 10 uninitialized ints
圆括号要求编译器对数组做值初始化,在本例中即把数组元素都设置为0。
疑问
(1)语句后面的array of 10 uninitialized ints不是说未初始化么?怎么又说初始化
(2)在VC++ 6.0环境下,下面代码表明并未初始化。如果没有初始化,那么跟一个空圆括号又有什么用途?
#include <iostream>
using namespace std;
int main()
{
int *pia = new int[10]();
cout << pia[0] << endl;
delete[] pia;
return 0;
}