gpt4 book ai didi

arrays - 简单但具体的数组编译错误(C)

转载 作者:行者123 更新时间:2023-12-05 08:30:36 27 4
gpt4 key购买 nike

这是我写的:

   const int MAX=100;

int main (){
int notas [MAX]={0};

编译器说如下:

[Error] variable-sized object may not be initialized
[Warning] excess elements in array initializer

当我用#define MAX 100 编写MAX 时,它起作用了。但我不明白这样做有什么问题?

最佳答案

在这种情况下

 const int MAX=100;

不创建编译时常量,所以数组被视为VLA .根据定义,VLA 无法初始化,因此会出现错误。

另一方面,#define MAX 100 是预处理器宏,基于文本替换属性,它导致编译时间常数值为 100,则该数组不是VLA,可以按照初始化规则进行初始化。

关于arrays - 简单但具体的数组编译错误(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63174294/

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