本文共 525 字,大约阅读时间需要 1 分钟。
int al[5]={[2]=100,[1]=3} ;/*{0,3,100,0,0} */int a2[5]={[0]=10,[2]=-1,-1,-3} ;/* {10,0,-1,-1,-3} */int a3[]={ 0,1,2,3,6,[2]=5}; /*{0,1,5,2,3,6} a3的长度是6 */int my_array[6] = { [4] = 29, [2] = 15 };int my_array[6] = { [4] 29, [2] 15 }; //省略到索引与值之间的=,GCC 2.5 之后该用法已经过时了,但 GCC 仍然支持
GNU 还有一个扩展:在需要将一个范围内的元素初始化为同一值时,可以使用 [first … last] = value 这样的语法:
int my_array[100] = { [0 ... 9] = 1, [10 ... 98] = 2, 3 };
这是将my_array数组的第0~9个元素初始化为1, 第10~98个元素初始化为2, 第99个元素初始化为3(你也可以显示地写成[99] = 3),在该语法中… 两边必须要留有空格符。
转载地址:http://mmjdi.baihongyu.com/