c语言中长度可变的数组?
发布网友
发布时间:2022-05-05 23:37
我来回答
共1个回答
热心网友
时间:2022-06-28 07:52
如果一个数组具有动态存储周期(也就是说,如果在语句块内定义数组,并且没有 static 修饰符),那么 C99 也允许把非常量表达式作为元素数量来定义该数组。这样的数组被称为长度可变数组(variable-length array)。
而且,长度可变数组的名称必须是普通的标识符。长度可变数组不能作为结构或联合的成员。在下面的示例中,只有 vla 数组的定义是合法的:
void func( int n ){int vla[2*n]; // 合法:存储周期为动态的static int e[n]; // 非法:长度可变数组不可有静态存储周期
struct S { int f[n]; }; // 非法:f不是一个普通标识符/* ... */}