Linux学习笔记

通常数组的初始化可以有以下两种:

int arr1[10] = {0};  /* 初始化所有元素为0 */
int arr2[10] = {10, 20};   /* 将前两个元素分别初始化为10,20,其余初始化为0 */

如果想将元素所有的元素初始化为非0(以整型数组为例),应该怎样做呢?

因为标准没有提供这方面的支持,所以,需要自己实现。通常会想到使用循环:

int arr3[10];
int i;
for (i = 0; i < 10; ++i)
    arr[i] = 10;                       /* 初始化所有元素为10 */

现在,情况有所不同了(前提你使用的是Linux系统),你可以通过数组下标范围进行初始化:

int arr4[10] = { [0 ... 9] = 10};   /*初始化所有元素为10 */
int arr5[10] = { [4] = 30, [8] = 100}; /* 初始化下标为4的元素为30,下标为8的元素为100 */

实验平台:Ubuntu 14.04 x86_64, Linux 3.16.0, gcc 4.8.2

你可能感兴趣的:(Linux学习笔记)