rt,是不是变长数组只能拥有自动存储期限,而拥有静态存储期限的就不会被视为变长数组?
e.g.:
#include <stdio.h>
int n = 10;
int a[n] = {...};
int main(void)
{
for (int i = 0; i < n; i++)
printf("%d", a[i]);
return 0;
}
是非法的
#include <stdio.h>
int main(void)
{
int n = 10;
int a[n] = {...};
for (int i = 0; i < n; i++)
printf("%d", a[i]);
return 0;
}
是合法的?
问题已经解决,感谢大家的回答!
脑子一抽写错了点————变长数组没法写初始化式。。。
另外,变长数组不能具有静态存储期限,因为它的长度是编译时决定的,而变长数组的长度要到运行时才能确定,所以只能是作为拥有自动存储期限的变量。
另外变长数组是C99新特性,不过vc比较拽一直懒得实现。