可以说我有一个类似的阵列
int arr[10][10];
Run Code Online (Sandbox Code Playgroud)
现在我想将此数组的所有元素初始化为0.如何在没有循环或指定每个元素的情况下执行此操作?
请注意这个问题是否适用于C.
Mar*_*tos 15
快速解决方案:
int arr[10][10] = { 0 };
Run Code Online (Sandbox Code Playgroud)
如果初始化数组的任何元素,C将默认初始化您未明确指定的任何元素.因此,上面的代码将第一个元素初始化为零,而C将所有其他元素设置为零.
除了初始化语法,您始终可以 memset(arr, 0, sizeof(int)*10*10)
你很幸运:0,这是可能的。
memset(arr, 0, 10 * 10 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)
您不能使用 0 以外的其他值执行此操作,因为memset适用于字节,而不是ints。但是int,所有0字节将始终具有 value 0。