Const Int 作为数组大小:条件允许
尽管两个示例都涉及使用 const int 来指定数组的大小, C 中只允许第一个表达式。造成这种差异的原因在于两个表达式的语义。
第一个表达式 const int size = 2 是一个常量表达式,这意味着它的值可以在汇编。这允许编译器在编译时确定数组的大小,使其能够保留适当的内存量。
相比之下,第二个表达式 const int size = a,表示一个 non -constant expression 因为 a 是一个可变变量。因此,编译器直到运行时才能保证 size 的值,从而无法在编译期间分配数组。
这种区别凸显了 C 中“表达式类型”的重要性。使用非常量表达式作为数组大小会妨碍编译时内存预留,因为编译器在不执行程序的情况下无法确定所需的大小。这种限制是流分析的严格规则和复杂性造成的,流分析是在运行时确定变量值的过程。
以上是为什么不能在 C 中使用变量定义数组大小?的详细内容。更多信息请关注PHP中文网其他相关文章!