C语言 数组中b[3][2]=a[2][3] 是如何进行赋值的。

a[2][3]={{1,2,3},{4,5,6}};那么赋值给b后b变成什么了。... a[2][3]={{1,2,3},{4,5,6}};那么赋值给b后b变成什么了。 展开
 我来答
暴击的幸运
2011-02-09 · TA获得超过266个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:188万
展开全部
表达式b[3][2] = a[2][3]表示把a数组中第2行第3列的元素的值赋给b数组中第3行第2列的元素(从0开始算)
该赋值有错误,a[2][3]下标越界了,a的下标范围是[0,1][0,2],该操作将会读取内存中不属于该数组的数据,是没有意义的数值

如果你想把a拷贝给b只能逐个赋值
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
b[i][j] = a[i][j];
}
或者用库函数
memcpy(b, a, sizeof(a));
听不清啊
高粉答主

推荐于2017-11-30 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:2亿
展开全部
如果定义是
int a[2][3]={{1,2,3},{4,5,6}};
还不知道b数组是如何定义的。
起码 a[2][3] 已经越界了。所以 b[3][2]=a[2][3] 是一个未知结果的操作。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jtuki
2011-02-09 · 超过13用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:32.7万
展开全部
这个赋值是单个元素的赋值。即对 b[3][2] 赋值。
C 语言不支持数组的整体拷贝,除非你将数组放在结构体内。

update:
晕了,一开始还没注意边界问题。。汗死。。
没错,这个问题本身就有问题,越界了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cn_tigers
2011-02-09 · TA获得超过800个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:263万
展开全部
错了。。。a[2][3] 第一个下标是0,1.第二个是0,1,2.
a[2][3]是个随机值。所以[3][2]就被赋值成不知道啥值了。

a[2][3]应该会出错!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jim458
2011-02-09
知道答主
回答量:20
采纳率:0%
帮助的人:8.2万
展开全部
1 2
3 4
5 6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式