📜  在C中将数组的所有成员初始化为相同值的不同方法

📅  最后修改于: 2021-05-25 22:10:32             🧑  作者: Mango

数组是保存固定数量的相同类型的值的数据的集合。例如:如果要存储100个学生的分数,则可以为其创建一个数组。

int num[100];

如何在C中声明数组?

Data_type  array_name[size_of_array];

例如,

float num[10];

下面是一些可以将数组的所有元素初始化为相同值的不同方法:

  1. 初始化列表:要在C中使用相同的值初始化数组,天真的方法是提供一个初始化列表。我们将其与小型阵列配合使用。
    int num[5] = {1, 1, 1, 1, 1};
    

    这将在所有索引处将num数组初始化为值1。
    我们也可以忽略数组的大小:

    int num[ ] = {1, 1, 1, 1, 1}
    

    如果我们提供了空的初始化列表或仅在初始化列表中指定0,则数组将初始化为0。

    int num[5] =  { };                // num = [0, 0, 0, 0, 0]
    int num[5] =  { 0 };             // num = [0, 0, 0, 0, 0]
    
  2. 指定的初始值设定项:当我们要用相同的值初始化范围时使用此初始值设定项。仅与GCC编译器一起使用。
    [ 第一的 。 。 。 last] =值;
    int num[5]={ [0 . . . 4 ] = 3 };               // num = { 3, 3, 3, 3, 3}
    

    我们也可以忽略数组的大小:

    int num[  ]={ [0 . . . 4 ] = 3 };               // num = { 3, 3, 3, 3, 3}
    
  3. :为了初始化具有相同值的巨大数组,我们可以使用宏。
    #include
      
    #define x1 1
    #define x2 x1, x1
    #define x4 x2, x2
    #define x8 x4, x4
    #define x16 x8, x8
    #define x32 x16, x16
      
    int main(void)
    {
    // array declaration
    int num[] = { x32, x8, x4, x1};
    int size = sizeof(num)/ sizeof(int);    // 32+8+4+1= 45
      
    printf("The size of the array is %d\n", size);
    printf("The value of element in the array at index 5 is %d ", 
                                        num[4]);
      
    return 0;
      
    }
    
    输出:
    The size of the array is 45
    The value of element in the array at index 5 is 1
    
  4. 使用For循环:我们还可以使用for循环来初始化具有相同值的数组。
    #include
      
    int main(void)
    {
        int size = 6;
        int val = 1;
      
        // array declaration
        int arr[size];
        int i;
      
        // initializing array elements
        for (i = 0; i < size ; i++){
            arr[i] = val;
        }
      
         // print array
         printf("The array is:");
         for (i = 0; i < size ; i++){
             printf("%d ", arr[i]);
        }
      
        return 0;
    }
    
    输出:
    The array is:1 1 1 1 1 1
    
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。