c99中新添了一个新特性:指定初始化项目,这个特性允许选择,对某些元素进行初始化。
按照C语言的传统语法,在对数组的最后一个元素赋值时,应对每一个元素进行初始化后,才可以对最后一个元素进行初始化。
int arr[6] = {0,0,0,0,0,212};
然而C99中支持如下初始化方法:
int arr[6] = {[5] = 212};
即,可以在初始化列表里使用带有方括号的元素下标来指定某个特定的元素。
从输出结果来看,有两个需要注意的地方。
- 如果在一个指定初始化项目后跟着不止一个值,则这些数值将会用来给该项目的后续数组元素进行初始化。
[4] = 31,32,33
如上:将31赋给[4]后 ,又将32,33,分别赋给[5] [6]
- 如果对一个数组元素进行多次赋值,那么后面的指定初始化会覆盖前面的,所赋的值以最后一次为基准。