首先来看一段文字
捕获_副本.png
这段话是什么意思呢?
举个栗子:
#define SIZE = 10
int size = 10;
const int con_size = 10;
①int kk[size] = {} ②int kk[con_size] = {}
③int kk[size];
for(int i = 0;i < size; ++i){
kk[i] = i;
}
④int kk[SIZE] = {}
我们以4种方式定义和初始化数组kk,其中① ②方法都是错误的,编译器都会警示数据初始化失败,这就是上图中所说的,不能初始化用变量指定维数的数组(可变长数组),即便这个变量添加const属性,但是可以先定义,然后循环访问初始化成员来达到初始化数组的目的,如③所示。方法④,由于SIZE是宏定义的一个符号,在程序编译前该符号会被替换成常量,也就等同于kk[10],所以初始化是没问题的。