对于数组的初始化大家应该都是了然于胸的,相信大家平时应该会 遇到可能需要对数组进行一些批量的赋值的情况,比如我需要一个这样的数组 :
{100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 97}
第1个元素到第7个元素均为99,这种时候如果按照普通的写法,我们需要把所有的元素的具体内容都写出来,需要重复写多次99,如果数量不多的话,写一遍也不会很耗时间,但是如果数量比较庞大的话,那就非常麻烦了,所以有没有什么比较简洁的办法能够方便快捷的批量初始化数组呢?其实是有的。
C99 支持这样一种数组初始化方式,可以很方便的对数组进行初始化:
int arr[10] = {100, [1 ... 7] = 99, 98, 97};
省略号 的两边的数字代表元素的下标,实际意义是将第1个元素至第7个元素均赋值为99;
示例:
# include <stdio.h>
void main(void)
{
int arr[5] = {100, [1 ... 3] = 50, 10};
for (int i = 0; i < 5; i++)
{
printf("a[%d] = %d\r\n", i, arr[i]);
}
}
输出:
a[0] = 100
a[1] = 50
a[2] = 50
a[3] = 50
a[4] = 10