问题代码:
#include "stdio.h"
int n=10,a[n];
int main(void)
{
return 0;
}
报错: error: variably modified ‘a’ at file scope
但如果把int n=10,a[n];写到main里面是可以编译运行的,想知道为什么。
#include "stdio.h"
int main(void)
{
int n=10,a[n];
return 0;
}
这样是可以的。
数组不能定义在方法外面。
参考博客:大数组才需要定义全局变量(在main的外面),小的应该不需要,你看看这篇博客,应该就懂了
根据参考链接的解释,变长数组必须是在代码块内的局部变量。
参考链接: