这在 C 语言中有效吗?
#include <stdio.h>
int main()
{
int i = 5;
int a[i]; // Compiler doesn't give error here. Why?
printf("%d",sizeof(a)); //prints 5 * 4 =20. 4 is the size of integer datatype.
return 0;
}
编译器不会在语句中给出错误int a[i];
。我不是一个常数,那么它如何编译成功?是因为我使用的是 gcc 编译器吗?在 C++ 中是否允许?