c语言怎么清空整个数组?

如题所述

在 C 语言中,可以使用循环来遍历数组,将数组中的每个元素都清空。具体的代码实现如下:
#include <stdio.h>int main() { int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int i;
// 将数组中的每个元素清空
for (i = 0; i < 10; i++) {
arr[i] = 0;
}
// 输出清空后的数组
for (i = 0; i < 10; i++) { printf("%d ", arr[i]);
}
return 0;
}

在上面的代码中,我们先定义了一个包含 10 个元素的数组 arr,然后使用一个循环将数组中的每个元素都清空为 0。最后再使用另一个循环输出清空后的数组,以便验证清空操作是否成功。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-12-11

有两种方法可以做到。

一、循环赋值。

对每一项分别赋值为0。对于二维数组一般用双重循环,实际上用单重循环也可以,效率上并无区别。

参考代码:

TYPE a[100][100];
int i,j;
for(i = 0; i < 100; i ++)
    for(j = 0; j < 100; j ++)//双重循环遍历。
        a[i][j] = 0; //每个赋值为0。

二、整体置零。

在C库函数中,有memset这一个函数,形式为

/* Set N bytes of S to C.  */

void *memset (void *s, int c, size_t n);

功能为,在地址s指向的内存单元开始,将c个字节的空间,每个都赋值为c。

这个函数是按字节赋值的,所以对于赋值0值,可以直接将整个内存空间清零。

参考代码:

TYPE a[100][100];
memset(a, 0, sizeof(a));//整体清0.


第一种方法更具通用性,后一种方法不是永远适合,但在可以用memset的情况下,后一种方法更高效。

相似回答