这是在一次研讨会中发现的我知识上的纰漏,在此进行记录。
当时想给学弟学妹讲一下关于动态内存的问题,在讲述时我用了一个初始化变量时不能用变量作为下标。例如:
int i = 5;
char test[i];
然而事实上,在这样写了之后我发现编译没有出错,这和我最开始学C语言时老师给我们讲的内容并不相同。我最初怀疑时因为此时i已经被赋值了而后在此期间没有进行计算,所以编译器可能将其直接作为一个宏定义来解析了。但是我们又尝试了如下两种写法。
int i = 5;
i++;
char test[