可能重复:
声明具有非常量大小变量的数组
这是我的代码:
const int xsize=150;
char Hey[xsize];
我不明白为什么我不能使用上面的常量声明我的新数组嘿。有人可以帮忙吗?
可能重复:
声明具有非常量大小变量的数组
这是我的代码:
const int xsize=150;
char Hey[xsize];
我不明白为什么我不能使用上面的常量声明我的新数组嘿。有人可以帮忙吗?
它不是有效的 C89 代码。您不能声明具有可变大小的数组,即使该变量恰好是const
.
#define
如果您将其作为 a而不是 a ,它将起作用const int
。不过,它在 C99 中有效。GCC 和其他编译器也将其作为 C89 模式的扩展提供。
因为const
不会创建常量。它创建一个只读对象。
对象和常量的区别在于对象有一个特定的内存位置。常量只存在于源代码中。
在 C89 中,数组大小应该是一个常量表达式。const
变量不是常量表达式。为此,您必须使用 C99 中的 VLA。