变长数组
变长数组简单地来说,就是数组的维数可以用变量去定义。形如:
int n = 3;
int m = 4;
int ar[n][m]; //支持变长数组的编译器对于这样是不会报错的。
在函数原型和函数定义的形参里,变长数组的维度变量要在前面先声明:
void function(int n, int m, int ai[n][m]);
但是,要注意的是,变长数组的存在意义是为了让函数处理任意大小的数组,而不是让数组的维度动态变化,因为动态变化数组维度这违反C语言的逻辑。
与传统语法类似,变长数组实际上也是一个指针。