什么是变长数组?
C99标准中给⼀个变⻓数组(variable-length array,简称VLA)的新特性,允许我们可以使⽤变量指定数组⼤⼩。可以利用如下代码去定义数组:
int n = a+b;
int arr[n];
上⾯⽰例中,数组 arr 就是变⻓数组,因为它的⻓度取决于变量 n 的值,编译器没法事先确定,只有运⾏时才能知道 n 是多少。而在此之前是不能用此方法去定义数组,而是用如下方法:
int arr1[10];
int arr2[3+5];
int arr3[] = {1,2,3};
这样的语法限制,让我们创建数组就不够灵活,有时候数组⼤了浪费空间,有时候数组⼜⼩了不够⽤的。变⻓数组的根本特征,就是数组⻓度只有运⾏时才能确定,所以变⻓数组不能初始化。它的好处是程序员不必在开发时,随意为数组指定⼀个估计的⻓度,程序可以在运⾏时为数组分配精确的⻓度。有⼀个⽐较迷惑的点,变⻓数组的意思是数组的⼤⼩是可以使⽤变量来指定的,在程序运⾏的时候,根据变量的⼤⼩来指定数组的元素个数,⽽不是说数组的⼤⼩是可变的。数组的⼤⼩⼀旦确定就不能再变化了。
而 VS虽然⽀持⼤部分C99的语法,却没有⽀持C99中的变⻓数组。所以我们可以在vs2022中使用其他编译器来支持变长数组的使用。
具体操作:
1. 按windows键搜索installer
2.
3.
4.
5.选择项目-属性
6.在平台工具集选项中选择LLVM(clang-cl)
7.这样就可以定义变长数组了
注:内容来源鹏哥c语言https://www.bitejiuyeke.com