以下程序的输出结果是______。main() { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",p[i]... main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2) printf("%d",p[i]);
}
答案解析:
i=0时,输出p[0],也就是x[1][1],输出是5;
i=2时,输出p[2],即p[2+0],也就是x[2][0],输出是3。
为啥p[2]即p[2+0]?
为啥不能p[1+1]?
为啥p[2+0]也就是x[2][0]?
展开
 我来答
松甜恬0Je4ba
2014-03-22 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3393万
展开全部
二维数组在内存中是如下存储的,按行进行存储的

x[0][0] 9 x[0][1] 8 x[0][2] 7
x[1][0] 6 x[1][1] 5 4
x[2][0] 3 2 1

其实也可以看做一维数组的存储 x[0]----x[8] x[0]=9 x[1]=8 x[8]=1

因为存储的时候都是一样的

p指向的是 x[1][1] 也就是说 p[0] = x[1][1]
p[1] = x[1][2] p[2] = x[2][0] 所以结果就是那样了。

这里并不是拆分,而是计算的相对位置。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式