Paragraph 17
[dcl.init]
指定数组的所有可能的初始值设定项。
17
初始值设定项的语义如下。目标类型是正在初始化的对象或引用的类型,源类型是初始化器表达式的类型。如果初始值设定项不是单个(可能带括号)表达式,则不定义源类型。
(17.1)
如果初始值设定项是a(无括号)
带括号的初始化列表
带括号的初始化列表
(17.2)
(17.3)
(17.4)
如果初始值设定项为(),则对象为值初始化。
(17.5)
否则,如果目标类型是数组,则程序格式错误。
(17.2)不适用于阵列,因此选项为:
-
[dcl.init]/12
):
int x[3];
-
值初始化(
[dcl.init]/17.4
):
int* x = new int[3]();
-
[dcl.init]/17.1
):
int x[] = {1, 2, 3};
或
int x[] {1, 2, 3};
-
[dcl.init]/17.3
):
char x[] = "text";