将一个int数组(只有一个元素)分配给c中的一个整数

Assign an array of int (only one element) to an integer in c

我在网页上看到我们可以这样做:

int k = {5};

当我自己尝试时,我发现这在 C 编程中有效并且 k 的值是 5

没有数组,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 , 指定 opt initializer

int k = {5}; 是一种完全合法的初始化标量的方法,尽管它并不能很好地表达您的 意图。因此,好的编译器可能会警告您。

但请注意,大括号初始化为零 {0} 是惯用的。 (尽管在 C++ 中,我更喜欢使用 {})。