永发信息网

请高手检查一下这个C语言程序哪里不对

答案:3  悬赏:50  手机版
解决时间 2021-11-17 03:10
请高手检查一下这个C语言程序哪里不对
最佳答案
语法没有错误,能够编译通过并能运行。
输出结果:
ar=9ar=9ar=11追问能帮忙解释一下为什么是这个结果吗???ar=9ar=9ar=11追答for循环运行3次,j值分别是3,2,1;p指针初始时指向a数组中的11
当j==3时,打印出11之前的数9(因为是--p,p指向9)
当j==2时,打印出9之后p指针指向11
当j==1时,打印出11后指针指向13。
所以打印结果是:ar=9ar=9ar=11追问break起什么作用??谢谢追答break作用是中止switch语句。
在此例中,如果没有break,那么执行PR(*p++)后还会执行PR(*(--p));但是加了break后,执行PR(*p++)后跳出switch语句。
全部回答

case2的冒号错了

追问结果为什么是ar=9ar=9ar=11???追答指针是取地址的,*p=a+5;也就是a[5]的值,a[5]=11,case 3 的时候--p就是a[4]=9,case 2的时候*p++是取值后自增,也是9,最后a[5]就是11了
#include
#define PR(ar) printf("ar=%d ",ar)
void main()
{
int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15 }, *p = a + 5;
for (j = 3; j; j--)
switch (j)
{
case 1:
case 2:PR(*p++); break;
case 3: PR(*(--p));
}
}

ar=9
ar=9
ar=11追问能帮忙解释一下为什么是这个结果吗???ar=9ar=9ar=11
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女友的前夫还喜欢她,她去看孩子,在前夫家住,
请问腿脚无力是什么原因
丁家桥村地址好找么,我有些事要过去,
想做头发了,哪里烫大卷好
苹果6怎么设置微信红包语音提示
国庆你过的开心吗?
一个外国乐队,一个女孩在镜头前唱歌,一个男
22个月的宝宝能吃草头吗
招行金葵花做理财要多少才能做
骨干教师培训是评骨干教师的条件吗
爱之家灯饰地址在什么地方,想过去办事
加盟乡镇的中通快递需要多少钱?
广西哪里产甘蔗最多?
为什么我能自己控制视力,我可以调整自已所看
裕华区石家庄市裕华区老年大学这个地址怎么能
推荐资讯
湖北荣大三农科技有限公司是传销吗
银行对新进的柜员要求一指三张点钞要10分钟18
36+3x=47+x用方程怎么解
配制250ml1.0mol/l h2so4溶液需要18mol&#
断路保护的的操作电源可取自何方
平房132平米的建筑面积它的实际使用面积是多
彩票销售店(胜利四路34)地址好找么,我有些事
西文口村地址好找么,我有些事要过去,
想问女生一个问题,男士勿扰
宁夏建工集团有限公司北方分公司怎么去啊,有
这是HTC什么手机
我的小米3只上扣扣和空间不到一小时用了18兆
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?