代码之家  ›  专栏  ›  技术社区  ›  Laz

如何在不使用循环的情况下将数组初始化为C中的某个对象?

c
  •  6
  • Laz  · 技术社区  · 14 年前

    假设我有一个数组

    int arr[10][10];
    

    现在我想将这个数组的所有元素初始化为0。在没有循环或指定每个元素的情况下,如何做到这一点?

    请注意这个问题,如果是C

    6 回复  |  直到 14 年前
        1
  •  13
  •   Marcelo Cantos    14 年前

    快速N-脏解决方案:

    int arr[10][10] = { 0 };
    

    如果您初始化 任何 数组的元素,c将默认初始化未显式指定的任何元素。所以上面的代码将第一个元素初始化为零,C将所有其他元素设置为零。

        2
  •  6
  •   Terry Mahaffey    14 年前

    除了初始化语法之外,您还可以 memset(arr, 0, sizeof(int)*10*10)

        3
  •  4
  •   Khaled Alshaya    14 年前
    int arr[10][10] = {0}; // only in the case of 0
    
        4
  •  3
  •   Thomas    14 年前

    你很幸运:有了0,一切皆有可能。

    memset(arr, 0, 10 * 10 * sizeof(int));
    

    不能使用其他值0执行此操作,因为 memset 在字节上工作,而不是在 int 而是一个 int 这就是全部 0 字节将始终具有值 .

        5
  •  1
  •   Mahmoud Al-Qudsi    14 年前
    int myArray[2][2] = {};
    

    您甚至不需要显式地写零。

        6
  •  0
  •   c4learn.com    14 年前

    内部排列[10][10]=0