对于数组的初始化大家应该都是了然于胸的,相信大家平时应该会 遇到可能需要对数组进行一些批量的赋值的情况初始化数组,比如我需要一个这样的数组:

{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 
void main(void)
{
    int arr[5] = {100, [1 ... 3] = 50, 10};
    for (int i = 0; i < 5; i++)
    {
        printf("a[%d] = %drn", i, arr[i]);
    }
}

输出:

a[0] = 100
a[1] = 50
a[2] = 50
a[3] = 50
a[4] = 10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注