如何对二维数组进行清零操作?

如题所述

有两种方法可以做到。

一、循环赋值。

对每一项分别赋值为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的情况下,后一种方法更高效。

温馨提示:答案为网友推荐,仅供参考
相似回答