求下列程序的运行结果
main(){intx=6,y,z;x*=18+1;printf("%d,",x--);x+=y=z=11;printf("%d,",x);x=y==z;printf("...
main()
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,"-x++);
}
main()
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,",-x++);
} 展开
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,"-x++);
}
main()
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,",-x++);
} 展开
1个回答
展开全部
程序报错,prt(&a,&b&c); 少了个逗号pr(&a,&b,&c);
答案是11,41,20
12,42,20
那你要问为什么C还是20,那我们看一下程序:
",++*x,++*y,*(z++));} 单单看*(z++)这个两次的运行顺序我写一下:
1.输出*z因为z++是先运行Z然后再运行z++的
2.z++是什么意思,不是20加1,因为这个z不是*z,它的自加不会影响到20这个数,只是它指向的地址加1,如果原来它指向的地址是100的话,那么现在就是101,所以到第二次输出是还是20,因为20没有被改变,而且每一次运行这个函数的时候,z的赋值就会被重置,而不是原来后面的那个地址了,所以还是20的地址,输出当然是20.不知道你懂了没有!
如果懂了的话,就赏我面小旗玩玩吧!
继续,我不是说过每次运行prt这个函数,z的赋值就会被重置吗,就是说没一次运行prt这个函数,z的值就会被赋予20这个数的地址,而结束这个函数后,z的值会消失,所以到下一次运行的时候还是20这个数的地址,现在知道了吗?
答案是11,41,20
12,42,20
那你要问为什么C还是20,那我们看一下程序:
",++*x,++*y,*(z++));} 单单看*(z++)这个两次的运行顺序我写一下:
1.输出*z因为z++是先运行Z然后再运行z++的
2.z++是什么意思,不是20加1,因为这个z不是*z,它的自加不会影响到20这个数,只是它指向的地址加1,如果原来它指向的地址是100的话,那么现在就是101,所以到第二次输出是还是20,因为20没有被改变,而且每一次运行这个函数的时候,z的赋值就会被重置,而不是原来后面的那个地址了,所以还是20的地址,输出当然是20.不知道你懂了没有!
如果懂了的话,就赏我面小旗玩玩吧!
继续,我不是说过每次运行prt这个函数,z的赋值就会被重置吗,就是说没一次运行prt这个函数,z的值就会被赋予20这个数的地址,而结束这个函数后,z的值会消失,所以到下一次运行的时候还是20这个数的地址,现在知道了吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询