c语言中怎么给一个行和列都是100的二维数组都赋0值

 我来答
风若远去何人留
2017-05-11 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450110
专业C/C++软件开发

向TA提问 私信TA
展开全部

有两种方法可以做到。

一、循环赋值。

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

军俐宝云亭
2019-07-13 · TA获得超过3794个赞
知道大有可为答主
回答量:3106
采纳率:29%
帮助的人:183万
展开全部
有两种方法可以做到。
一、循环赋值。
对每一项分别赋值为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的情况下,后一种方法更高效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xndcn
推荐于2017-09-19 · TA获得超过826个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:429万
展开全部
比如
int a[100][100]={0};
那么a的所有元素都被赋了0值。

也可以
int i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
a[i][j]=0;
就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZaolyloaZ
2017-04-02 · TA获得超过1776个赞
知道小有建树答主
回答量:567
采纳率:80%
帮助的人:93.4万
展开全部
int a[100][100]; /* 定义一个数组 */
memset(a, 0, 100 * 100 * sizeof(int)); /* 将数组的每个元素设置为 0 */
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想起绛株
2008-01-14 · TA获得超过977个赞
知道答主
回答量:420
采纳率:0%
帮助的人:0
展开全部
int a[100][100]={0};
靠!这种问题也问
我练一下指法算啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式