我有几个关于数组的问题。 我学过,数组大小必须在声明时是常量,编译器必须知道其值。 但是,在使用GNU GCC编译器(C ++ 11标准过滤器)时,当以动态方式声明该数组(使用new
)时,我可以使用变量作为数组大小完美地编译和运行程序。
int num;
cout << "How big an array? ";
cin >> num;
int *arr = new int [num];
问题1:这是标准的吗?我的教授们说法不一。
问题2:如果它是标准的,那么是否可以在创建后扩展数组(或任何数组)的大小?
问题3:同样地,如果这个表达式是标准的,那么是否可以在函数中使用它——例如使用一个函数来创建这样的数组?如果可以,应该怎么做?
(附言:你好,我是新来的,也是C++的初学者)