变长数组的概念是在C99标准出现之后才有的,在此之前,C语言在创建数组的时候,数组大小的指定只能用常量,常量表达式来表达(如图一)。如果要初始化数组只能粗略的估计。
这是c99便给出了变长数组这样一个功能,让数组大小可以用变量来定义(如图二)。
变长数组的实质就是数组的长度只有在运行的时候才能确定。其中最重要的也就是变长数组是不能初始化的,一但初始化反而报错。一开始小编我使用的时候,就正是不了解其这一特性,使得代码的运行不成功。
一但运行,便可以根据变量的大小来确定数组元素的个数,变长数组并不是数组的大小可以变化,而是在等在与之对应的变量的值。变长数组能够极大地方便我们数组的大小的指定。
但遗憾的是,变长数组并不能够在所有编译器上实现,还是要根据自己的编译环境使用。