我昨天刚做了一个实验,发现一些令人困惑的事情:
#include <stdio.h>
int main()
{
int j;
scanf("%d",&j);
const int i = j;
int arr[i];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
j从键盘读取数字,它用于arr在堆栈上分配数组.
编译器在编译时甚至不知道数组的大小(将j初始化为0?),但没有编译错误.这怎么可能?