c语言程序题,不知道答案对不对,求解释!
展开全部
此题的答案是B,60——因为初始化a时第7个数是14.16,所以总共用11个数来初始化12个元素的二维数组a,最后一个数是0;第7个数因要截断处理,所以仅得12;故a[4][3]实际上被初始化为{{2,4,6},{8,10,12},{14,18,20},{22,24,0}}。由于k+=*(*(p+i)+j);就是k+=p[i][j];,那么i=1、j=1时k=0+p[1][1]==10;i=1、j=2时k=10+p[1][2]==22;i=2、j=1时k=22+p[2][1]==40;i=2、j=2时k=40+p[2][2]==60。所以B正确。只是编译时会有数据精度损失警告。如果14.16是14,16的笔误,a就被初始化成{{2,4,6},{8,10,12},{14,1618},{20,22,24}},用上述同样的方法可以获得结果是56,A正确。
追问
大神,关于指针p是怎么赋值的,以及k+那条语句可以再详细解释一下吗?为什么就是p[i][j]?谢谢🙏
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询