二维数组的怎样赋值

 我来答
士飞薇武钧
2019-07-26 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:709万
展开全部
你好:
1、你可以建立双层循环,来进行赋值。2、你可以将数组首地址给一个指针,然后一个单循环赋值,循环次数是你所有数值的个数,记得指针自加。
祝你好运!
马清宁扶菁
2019-03-17 · TA获得超过3.9万个赞
知道大有可为答主
回答量:1.3万
采纳率:27%
帮助的人:893万
展开全部
这样赋值是错的,这是对w[500][100]赋值为10000000001了,你要对其一个个赋值,用for循环吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tonioann
推荐于2018-02-23 · TA获得超过737个赞
知道答主
回答量:47
采纳率:0%
帮助的人:33万
展开全部
两种方式:
一 使用for循环
如 int DestArray[y][x];//目的数组
int SrcArray[y][x];//源数组
for(int i=0; i<y; i++)
{
for(int j=0; j<x; j++)
{
DestArray[i][j] = SrcArray[i][j];
}
}

二 使用内存操作函数来提高效率
二维数组初始化,将DestArray全部置为零
int DestArray[y][x];
for(int i=0; i<y; i++)
{
memset(DestArray[i], 0, sizeof(int)*x);
}
这种方法效率更高。
还有将memset改为 memcpy 复制已有的数组。
int DestArray[y][x];//目的数组
int SrcArray[y][x];//源数组
for(int i=0; i<y; i++)
{
memcpy(DestArray, SrcArray, sizeof(int)*x);
}

以上两个例子都是考虑了二维数组时动态生成时的情况
因为内存不连续,需要用for循环来对每个块的内存赋值

假如是程序源码中已定义大小且连续的内存,可以不需要for循环直接调用这两个函数,例如:
int DestArray[100][100];
int SrcArray[100][100];
memcpy(DestArray, SrcArray, sizeof(int)*100*100);
memset(DestArray, 0, sizeof(int)*100*100);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式