数组初始化 --- 初始化器
C99增加了一个新特性:指定初始化器。利用该特性可以初始化指定的数组元素。例如,只初始化数组中的最后一个元素。对于传统的的C初始化语法,必须初始化最后一个元素之前的所有元素,才能初始化它:
int arr[6]={0,0,0,0,0,212];//传统的语法
而使用C99的新特性:
int arr[6]={[5]=212};
这样写和上面的结果是一样的,由于前几个元素没有初始化,所以编译器会自动把它们设置为0。
如果指定初始化器后面有更多的值,如:
int arr[8]={[5]=212,3,4};
这个时候arr[6]就初始化3,另外如果再次初始化之前指定的元素,那么最后的初始化将会取代之前的初始化。
如果未指定数组元素的大小的话,如:
int arr[]={1,[6]=23,4}
这个时候编译器会把数组的大小设置为足够装得下初始化的值。上面这个数组的长度就是8.