函数中数组大小也一定是编译期常量吗?
void A(int n);
int main(void) {
A(5);
}
void A(int n){
int a[n];//没报错
}
n是编译期常量吗?
为什么不报错?
void A(int n);
int main(void) {
A(5);
}
void A(int n){
int a[n];//没报错
}
n是编译期常量吗?
为什么不报错?
可变长数组(variable-length array)是C99引入的新语法。C++标准不支持。不过gcc, clang等编译器支持C99,因此不报错。
详情请参考
https://en.cppreference.com/w/c/language/array#Variable-length_arrays