我在网页上看到我们可以这样做:
int k = {5};
当我自己尝试时,我发现这适用于C编程,k
的值为5
。
答案 0 :(得分:4)
没有数组,C语法只允许这个。这两者都是等价的:
int k = 5;
int k = {5};
如初始化 1 的语法规则所示,
initializer可以是赋值表达式,对应于:
int k = 5;
初始值设定项也可以是{initializer-list},它可以是初始化程序,可以是赋值表达式:
int k = {5};
1 (引自ISO / IEC 9899:201x 6.7.9初始化语法1.)
初始化:
赋值表达式
{initializer-list}
{initializer-list,}
初始化列表:
指定opt初始化器
initializer-list,指定opt初始化程序
答案 1 :(得分:3)
int k = {5};
是初始化标量的完全合法的方法,尽管它并没有真正表达你的意图。因此,一个好的编译器可能会警告你。
但请注意,括号初始化为零{0}
是惯用的。 (虽然在C ++中,我更喜欢使用{}
)。