我想知道以下形式的初始化:
int array[] = {
v - 1,
array[0] + 1
} ;
在第二个元素的初始化中,使用第一个元素的值,但整个数组尚未初始化。这碰巧是用g++编译的,但是我不确定这是否真正可移植且结构良好?
最佳答案
参见3.3.2声明点:
int x = 12;
{ int x = x; }
因此,您正确地引用了数组,在
=
之后知道了它的名称。然后,8.5.1聚合:
但是,我看不到将评估值实际写入数组的时间,因此我不会依靠它,甚至会声明您的代码定义不正确。