求C语言大神解释

时间:2015.08.12 发布人:嗖嗖fly

求C语言大神解释

已解决问题

谷歌嗖嗖fly用户在2015.08.12提交了关于“日月潭求C语言大神解释”的提问,欢迎大家涌跃发表自己的观点。目前共有2个回答,最后更新于2025-02-28T02:16:33。

有以下程序

#include<stdio.h>

main()

{

inta[]={2,4,6,8},*p=a,i;

for(i=0;i<4;i++)

a[i]=*p++;

printf("%d\n",a[2]);

}


程序的输出结果是

A)2

B)8

C)4

D)6

参考答案:D


希望大家能够帮助她。

详细问题描述及疑问:

有以下程序

#include<stdio.h>

main()

{

inta[]={2,4,6,8},*p=a,i;

for(i=0;i<4;i++)

a[i]=*p++;

printf("%d\n",a[2]);

}


程序的输出结果是

A)2

B)8

C)4

D)6

参考答案:D


期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!
希望以下的回答,能够帮助你。

第1个回答

用户名:zmm**007  

然而我想说*p指向了数组a,那么*p==a[].第一个循环是从0开始来自的(自增运算符在后面)

所以第一次循环是a[0]=&p//就是a[0];

以此类推第二次是a[1]=*(p331215问答+1)//就是a[1];

第三次循环便是a[2]=*(p+2)//就是a[2]

*(p+2)所对的是a[2]而a[2]所对的是6

答案选D

注意第一次循环的时候p是先给程轮画国功站低如a[i]赋值后在自增的


第2个回答

用户名:玲儿我爱你  

p起始指向a[0]

a[角副都周晶还觉正片i]=*p++;等价于a[i]=*p;p++;

每次先给a[i]赋值,然后p++;

你就会发现,其实a[0]还是赋值了a[0],依次类推,a[]中的**没变

所以a[2]=4