《C Prime Plus》10.8学习笔记

148 阅读1分钟

变长数组

变长数组简单地来说,就是数组的维数可以用变量去定义。形如:

int n = 3;
int m = 4;
int ar[n][m]; //支持变长数组的编译器对于这样是不会报错的。

在函数原型和函数定义的形参里,变长数组的维度变量要在前面先声明:

void function(int n, int m, int ai[n][m]);

但是,要注意的是,变长数组的存在意义是为了让函数处理任意大小的数组,而不是让数组的维度动态变化,因为动态变化数组维度这违反C语言的逻辑。

与传统语法类似,变长数组实际上也是一个指针。