c语言数组问题,x[0][1]为什么是0,而不是2

 我来答
LennieLiu聊开发
2014-08-26 · TA获得超过345个赞
知道小有建树答主
回答量:231
采纳率:92%
帮助的人:121万
展开全部
这里是二维数组x[3][2],3行2列,可以理解成3个一维数组,每个一维数组中有两个元素。
所以这里scanf赋值,x[i]表示x[0],x[1],x[2],分别表示3个一维数组的第一个元素,
即x[0][0],x[1][0],x[2][0],所以赋值当然是给这3个元素赋值,又因为二维数组定义时就将数组中元素都清0了,自然x[0][1]就为0了。
不过这里要说明的是,x[i]就好比一维数组的数组名的意思,一维数组的数组名是可以用来表示第一个元素的。例如:int a[10]; 其中a就表示a[0],不信可以自己写个程序验证一下,给数组赋值,只输出a,你就可以理解了。
风若远去何人留
2014-08-26 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450133
专业C/C++软件开发

向TA提问 私信TA
展开全部
scanf的时候 传入的地址是x[i] 等同于 &x[i][0]
所以被scanf赋值的是x[0][0] x[1][0] x[2][0]
而x[0][1]没有被赋值 还是初始化的0值
于是输出为
2 0 4
追问
明白了,明白了,谢啦
追答
不是这样理解的, x本身是二维数组 那么x[i]就是第i行的首地址
而scanf同样也没有对一行赋值的功能,它只是机械的把传过去的地址上赋上输入的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式