C/C++初始化数组全为0的方法
- 使用C99标准的方式
使用C99标准时,可以直接在定义数组时使用空的花括号来初始化数组,这将会把数组中的所有元素都初始化为0。
int arr[10] = {}; // 将数组中的所有元素初始化为0
int arr[10] = {0}; // 将数组中的所有元素初始化为0
当使用大括号初始化器{}来初始化数组时,如果没有指定初始值,则数组的所有元素将被初始化为默认值。对于整型数组,其默认值为0。
在C++11之前,如果数组的大小与大括号中的初始值数量不匹配,编译器会报错。但是从C++11开始,可以使用空的大括号初始化器{}来初始化数组,这将自动将数组的所有元素初始化为默认值。
例如,int arr[10] = {};将创建一个包含10个整数的数组arr,并将所有元素初始化为0。这种方法简洁且易于理解,适用于静态数组和局部数组。但是,对于动态分配的数组,这种方法不适用
2. 使用memset函数
memset函数可以用来对指定的内存区域进行赋值操作,将指定的值赋给内存区域中的每一个字节。
int arr[10];
memset(arr, 0, sizeof(arr)*sizeof(arr[0])); // 将数组中的所有元素初始化为0
请注意,使用memset函数时,需要包含头文件。另外,这种方法只适用于初始化整型数组,对于其他类型的数组可能会出现问题。
3. 使用循环赋值
可以使用循环来对数组中的每一个元素进行赋值操作,将数组中的所有元素都赋为0。
int arr[10];
for(int i=0; i<10; i++) {
arr[i] = 0;
}