C 和 C 语言中的变长数组 (VLA)
变长数组 (VLA) 是编译时大小未知的数组。在 C99 中,可以在本地范围内声明 VLA。这允许更灵活的内存管理,并且在运行时才知道数组大小的情况下非常有用。
VLA 行为
正如用户所提到的,在 C99 中,VLA 允许出现在局部作用域中,但不允许出现在全局作用域中。此行为是由于全局变量必须具有编译时已知的常量大小所致。 Const 修饰符有时用于创建编译时值,但在 C99 中不会创建编译时值。
但是,在 C 中,全局变量可以具有编译时值。因此,使用 const 大小声明的全局数组不被视为 VLA,而是已知大小的传统数组。
为什么全局范围内不允许 VLA?
全局不允许 VLA 的原因有多种范围:
由于这些原因,VLA 在 C 和 C 中都被限制在本地范围内,这样可以更轻松地管理和安全地使用它们。
以上是为什么 C 和 C 中的可变长度数组 (VLA) 仅限于局部作用域?的详细内容。更多信息请关注PHP中文网其他相关文章!