在算法课的讨论中,我与一名同学关于能否用变量定义数组产生了矛盾,我习惯用vs,当然觉得是只能不能用a[n]这种形式定义数组的.网上说C99是支持用变量定义的,于是我用dev c++测试了一遍
#include<iostream>
using namespace std;
int main()
{
int n=4;
cin>>n; //输入数组长度
int a[n]={0}; //初始化数组中元素全为0
for(int i=0;i<n;i++)
cout<<a[i]; //输出数组
}
在devc++中 上面的代码是可以正常运行的,也就是说dev c++中定义数组时可以用变量作为数组的长度.
在vs中,会提醒你不能用变量定义数组长度,只能用常量
<<C++程序设计语言>> 里明确说"数组中元素的数量必须是常量表达式,如果你希望边界可变,最好使用vector", 也就是说在C++中是不支持a[n] 这种定义形式的,但是具体实例中会因为编译器的不同而改变.下面这个方法用new创建了一个动态数组,是通用的.
#include<iostream>
using namespace std;
int main()
{
int n; //定义数组长度
cin>>n;
int *a= new int[n];
}
不过如果你使用的是C语言,那么使用这种形式来定义数组是符合标准的.