因此,我正在向一名学生教授基本 C 编程以进行测试。
谈到数组声明,我告诉他:
“你可以这样做”
int myArray[10];
-> 告诉他代码可以编译
“你也可以这样做”
#define ARRAY_SIZE 10
[...]
int myArray[ARRAY_SIZE];
-> 告诉他代码可以编译
“但你不能这样做!”
int arraySize = 10;
int myArray[arraySize];
-> 告诉他代码不会编译......但它实际上可以编译!
myWholeLifeIsALie.jpg
我在 MinGW 中使用 DevC++。
汗,我打开Linux,做了一个简单的测试程序
#include <stdio.h>
int main()
{
int size;
int i;
scanf("%d", &size);
int array[size];
for(i = 0; i < size; i++)
array[i] = i*2;
return 0;
}
它使用 g++ 和 gcc 编译和运行。
相反,MS Visual Studio 2010 编译器告诉我他“期望常量表达式”。这也是我对 g++/gcc 的期望。
我想我在这里错过了一些愚蠢的东西,但我什至不能......