在c中初始化数组,格式为:int a = {0,};`

我曾经看到一个数组初始化的来源int arr[3] ={0,}; 这是什么意思 ? 我通常使用这种格式int arr[3]={0}; 我可以知道有什么区别

Solutions Collecting From Web of "在c中初始化数组,格式为:int a = {0,};`"

这可能是一个重复 ,但我会无论如何拍摄。

int arr[3] ={0,};int arr[3] ={0};

参考文献:C11 6.7.9:

  initializer: assignment-expression { initializer-list } { initializer-list , } 

初始化器列表的两种形式都被认为是初始化器。 最后用逗号表示的表单被许多人所喜欢,因为它可以在代码维护期间重新排列或添加元素到列表中。

  int arr[3] ={0,}; 

声明一个由三个元素组成的数组,并将第一个元素初始化为0.当进行部分初始化时,数组的其余部分将自动初始化为零。

参考。 C11 6.7.9:

如果大括号包含的列表中的初始值设定项少于聚合的元素或成员,或者用于初始化比数组中的元素大小的数组的字符串字符串中的较少字符,则聚合的其余部分应被隐式地初始化为具有静态存储持续时间的对象。