请解释变长数组的 “length doesn't change” 是什么意思。
变长数组是C99标准中新增的特性,可以在定义数组时,使用变量指定数组长度。例如:
int n; scanf("%d", &n); int arr[n];
在这个例子中,arr数组的长度是根据用户输入的n来确定的,也就是说它是动态确定的。但是,在程序运行时,数组的长度是不会改变的。也就是说,arr数组的长度在定义时确定了,而且在运行时也不会改变。因此,我们说变长数组的长度不变。
而与之相对应的是静态数组,静态数组的长度是在定义时确定的,而且在程序运行时也不能改变。但是,与变长数组不同的是,静态数组的长度必须是一个常量,不能是变量。