两道C语言的简单题目不懂~求解答~为什么选c,d特别是第十题求详细解题方法。谢啦~

 我来答
qscorpius_fly
2014-06-18 · TA获得超过1858个赞
知道小有建树答主
回答量:811
采纳率:80%
帮助的人:309万
展开全部
A a是1行4列的数组,而赋值列表中有5个元素,是放不下的
B 定义二维数组的时候要求列数不能为空,而行数可以由后面的赋值列表决定,若没有赋值列表那么行数也不能为空
C b是2行3列的数组,而赋值列表中有3行(1个{}就是一行的数据),超过数组定义的行数
D 正确,相当于定义了一个1行3列的数组,y[0][0]=0,y[0][1]=0,y[0][2]=0
更多追问追答
追问
谢谢,想请问一下这道题。执行以下程序段后,m的值是 ?
int a[]={2,1,3,5,4};
int m=10,k,*ptr=a; for(k=0;k<5;k++) m+=*(ptr+k);
追答
m+=*(ptr+k);等价于m=m+*(ptr+k);
*(ptr+k)实际上就是ptr指向数组a的第k个单元,即a[k]
k=0 m=m+*(ptr+0)=m+a[0]=10+2=12;
k=1 m=m+*(ptr+1)=m+a[1]=12+1=13;
k=2 m=m+*(ptr+2)=m+a[2]=13+3=16;
k=3 m=m+*(ptr+3)=m+a[3]=16+5=21;
k=4 m=m+*(ptr+4)=m+a[4]=21+4=26;
k=5 退出循环
所以程序的功能就是将m与数组a的所有元素加起来后再赋给m
一叶飘零海
2014-06-18 · 超过27用户采纳过TA的回答
知道答主
回答量:96
采纳率:100%
帮助的人:50.6万
展开全部
会去把如何定义二维数组学习下,你就明白了
更多追问追答
追问
那这个呢?执行以下程序段后,m的值是 ?
int a[]={2,1,3,5,4};
int m=10,k,*ptr=a; for(k=0;k<5;k++) m+=*(ptr+k);
追答
哈哈我只是初学者而已,刚学到指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式