C 中的变量数组大小声明
在 C 中,数组的大小通常期望为常量整数值。然而,问题是是否可以声明一个以非常量变量作为其大小的数组。
正如 Bjarne Stroustrup 在《C 编程语言》中所强调的,“数组绑定,必须是常量表达式”。因此,下面的代码被认为是不正确的:
<code class="cpp">int ArraySize = 5; int MyArray[ArraySize]; // incorrect</code>
但是,令人惊讶的是,在某些系统(例如 GCC v4.4.0)上,代码编译成功:
<code class="cpp">void f(int i) { int v2[i]; } int main() { int i = 3; int v1[i]; f(5); }</code>
这种意外行为这是由于 GCC 对标准的扩展。默认情况下,GCC 允许使用非常量变量作为数组大小。但是,这可能不是所有编译器或平台都支持的功能。
如果需要可移植性,强烈建议使用 GCC 的 -pedantic 选项来启用此扩展的警告或使用 -std=c 98 提出错误。通过遵守标准,代码将更加可靠和跨平台兼容。
以上是你能在 C 中声明一个可变大小的数组吗?的详细内容。更多信息请关注PHP中文网其他相关文章!