首先说一句重要的话:在c语言中规定a[n]中n不能为变量类型。
第一个:不正确
int n=10,a[n];
int n=10 定义的是变量,而常量的定义只能是#define N 10。
所以如果改成正确的应该是:
#define n 10;
int a[n];
第二个:不正确
const int n =10;
int a[n];
测试环境Dev-C++(gcc),有错误variable-sized object may not be initialized
意思是,变量大小的对象不能被初始化。
const只是限定该函数不可被修改,并不是真正意义上的常量!!!
最后:
这两种方法无论是在codeblocks还是devc++都可以成功运行。
但是在理论上来说对c来说两个方法都不对;对c++来说第一种不对,第二种对。
题外话,这甚至可以不用const关键字。
int n;
scanf("%d",&n);
int a[n];
这是允许的,也就是说,你可以先定义n,输入n的值,再定义a[n],这是被最新的编译器允许的