我想知道以下形式的初始化:

int  array[] = {
v - 1,
array[0] + 1
} ;

在第二个元素的初始化中,使用第一个元素的值,但整个数组尚未初始化。这碰巧是用g++编译的,但是我不确定这是否真正可移植且结构良好?

最佳答案

参见3.3.2声明点:

int x = 12;
{ int x = x; }

因此,您正确地引用了数组,在=之后知道了它的名称。
然后,8.5.1聚合:

但是,我看不到将评估值实际写入数组的时间,因此我不会依靠它,甚至会声明您的代码定义不正确。

10-02 03:03
查看更多