C++提供的聚合赋值是个非常方便的语法,免去了一堆堆的for。
举个简单的例子:
int a[] = {1,2,3,4,5};
这就是对数组a进行的聚合赋值。数组a的长度是5,在a[0]~a[4]里分别按顺序的存放着1,2,3,4,5.
可是如果你想在编译程序时对这些(指聚合赋值后的变量)进行引用时,可能就会出现问题。
如果有如下代码
看起来我们定义了一个数组i,而且按顺序的初始化为1,2,3,4,5.
语句
就是用i[3]里存的值(4)对数组f的大小进行初始化。
一切看起来像是如此平静。
“variable-size type declared outside of any function”
为什么呢????
因为编译器在编译时期不对数组i里边的数据进行处理,也就是说,它仅仅知道有i这么一个数组,大小它也知道,但是里边的值却不知道(或者说是不必知道)。
相类似的,语句
也是有同样的错误。
但是我们如果对程序略加修改
此时就能通过编译。
这样的问题,需要打醒十二分精神,要出出错了,还不知道自己错在哪。
原文链接:https://www.f2er.com/javaschema/287844.html