如何给一个二维数组全部赋值0

如题所述

memset函数(包含头文件string.h就可以使用了)

比如:

int a[m][n];//

memset(a,0,sizeof(a));

就可以了。

扩展资料:

注意事项

二维数组事实上叫做数组的数组。a[i]是数组名,a[i][j]是数组a[i]的第j个值。数组名表示数组的首地址,所以a[i]是数组a[i]的首地址,不用&来取地址。scanf("%d",&a[i])是不对的。要给二维数组赋值要用两个循环:

for(int i=0;i<2;i++){

for(int j=0;j<3;j++)

{

scanf("%d",&a[i][j]);

}

}

或者,想把二维数组当一维数组看待:

int *p=&a[0][0];//获取二维数组首地址

for(int i=0;i<6;i++)

{

scnaf("%d",p);

p++;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-02
var a:array [0..2000,0..2000] of integer;fliichar(a,sizeof(a),0);适用于任何二维数组,而且复杂度为O(1)
第2个回答  2013-04-01
可以用memset函数(包含头文件string.h就可以使用了。)

比如

int a[m][n];//

memset(a,0,sizeof(a));

就可以了
第3个回答  推荐于2017-09-30
如果是静态数组,这样做
int a[2][2] = {0}

如果是动态数组 ,这样做
int **a = new int*[n];
for(int i=0;i<n;++i)
a[i] = new int[m](0);

上面是定义的时候全部赋0的办法。

如果是定义完后,想要全部赋值0,这样做
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
a[i][j] = 0;
用2个for嵌套即可本回答被网友采纳
第4个回答  2013-04-01
int data[10][10];
memset(data, '0', sizeof(data));