C语言的学习问题 19(zp101-2)

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:21:22
求以下程序的输出结果
希望详细一点啊
谢谢啊

main()
{int a[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)
y+=p[x];
printf("%d\n",y);
}

p=&a[1] 为4 是数组第二个元素,
并且p[]数组头指针为a[1]
for循环2次
x=1, p[1]=x[2]=6;
j=6;
x=2,p[2]=x[3]=8;
j=14

得到输出最简单的方法,你把这个复制进你的编译器 运行一下就OK了,结果就很出来了

这个的结果应该是24

p=&a[1]; //p指向a数组的第1个元素,即4(第0个元素是2)
p[x]是*(p+x)也就是p之后第x个地址的值
故:p[1]=6;p[2]=8;p[3]=10
for(x=1;x<3;x++)
y+=p[x]; //从p[1]加到p[3],就是24了

14吧
p=&a[1]; 表示指针指向数组的的二个元素即4

for(x=1;x<3;x++) y+=p[x]; 就是x=1时y=p[1]=0现在的p[1]是6,后可知了:y=6+8=14

18