变长数组是指用整型变量或表达式声明或定义的数组,而不是说数组的长度会随时变化,变长数组在其生存期内的长度同样是固定的。
请问如何理解其中的长度不变?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在C里面,数组的大小就是不可以改变的,就算是指针分配的动态数组一般情况下也是不能轻易改变的
变长指的是数组的大小是随着每次进入该函数或者代码块的时候数组的大小可以是变化的,但即便是这样子,数组本身的大小在退出该代码块或者函数的之前是不会发生改变的
void fvla(int n)
{
char buff[n]; //n每次都不一样,但是一旦确定就不会发生改变
...
}
int main(void)
{
//长度必须是 整数字面量或者const修饰的变量
char array[128]; //定长数组,长度在main退出之前不会发生变化
for (int i = 1;i < 10;i ++) {
char buff[i]; //同函数的情况,n每次都不一样,但是确定就不会发生变化
...
}
...
}