C99标准中,支持变长数组,即方括号[]中可以用为一个变量,但是很多编译器并不能很好地支持。
c++11标准中,不支持变长数组,即方括号[]中必须为常量表达式。
c++标准支不支持变长数组,并不重要,因为完全可以自己实现。
变长数组(VLA):即在运行时候确定数组的长度
静态数组:编译时数组长度就定死了,不能对数组进行增、删、改
动态数组:运行时才确定数组的长度,可以对数组进行增、删、改等操作。
c++11中使用数组声明来创建数组时,是采用静态联编的,及在编译时确定数组的长度:
int temp[10];//方括号内为常量或者常量表达式
使用new []运算符创建数组时,将采用动态联编,即在程序运行的时候为数组分配空间,其长度也在运行时设置。使用完这种数组后,应使用delete[]释放其占用的内存:
int size;
std::cin>>size;
int* temp = new int [size];
...
delete [] pz;