gpt4 book ai didi

c++ - 声明可变大小数组时的意外编译器行为

转载 作者:搜寻专家 更新时间:2023-10-31 02:24:18 36 4
gpt4 key购买 nike

<分区>

因此,我正在为一名学生教授基础 C 编程以进行测试。

说到数组声明,我跟他说:

“你可以做到”

int myArray[10];

-> 告诉他代码可以编译

“你也可以”

#define ARRAY_SIZE 10
[...]
int myArray[ARRAY_SIZE];

-> 告诉他代码可以编译

“但你不能这样做!”

int arraySize = 10;
int myArray[arraySize];

-> 向他展示代码无法编译......但它实际上可以编译!

我的整个生命是Alie.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 的期望。

我想我在这里遗漏了一些愚蠢的东西,但我什至不能......

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com