2

可能重复:
声明具有非常量大小变量的数组

这是我的代码:

const int xsize=150;
char Hey[xsize];

我不明白为什么我不能使用上面的常量声明我的新数组嘿。有人可以帮忙吗?

4

3 回答 3

3

它不是有效的 C89 代码。您不能声明具有可变大小的数组,即使该变量恰好是const.

#define如果您将其作为 a而不是 a ,它将起作用const int。不过,它在 C99 中有效。GCC 和其他编译器也将其作为 C89 模式的扩展提供。

于 2012-11-05T11:25:30.220 回答
1

因为const不会创建常量。它创建一个只读对象。

对象和常量的区别在于对象有一个特定的内存位置。常量只存在于源代码中。

于 2012-11-05T11:26:02.040 回答
1

在 C89 中,数组大小应该是一个常量表达式。const变量不是常量表达式。为此,您必须使用 C99 中的 VLA。

于 2012-11-05T11:26:17.833 回答