|
发表于 2020-7-22 10:30:01
|
显示全部楼层
本楼为最佳答案
本帖最后由 sunrise085 于 2020-7-22 10:31 编辑
这种写法是C99的新特性,估计你的DEV-C不支持C99。
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.
引用自:https://blog.csdn.net/dream_follower/article/details/80298330
可以网上查一下,如何让DEV-C支持C99的特性。
应该是有方法的。
我在网上查了一下好像有,但是没有试验,就不在这里放了,怕出错。你自己查一下试试吧 |
|