c语言 为什么输入4 结果是5 ? a 不是先使用a的值然后再自加吗/

[复制链接]
查看11 | 回复6 | 2011-6-27 02:10:41 | 显示全部楼层 |阅读模式
main()
{
inta;
scanf(\"%d\",
if(a5)printf(\"%d\",a);
elseprintf(\"%d\",a--);
getch();

}
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
其实很简单的,
1你输入4先判断if里面的a显然这里要注意a5。这个是两个式子。先计算a的值,然后才判断是不是大于5。这个时候a的值已经是5了。所以判断为假。
2然后执行elseprintf函数只是取对应前面的%d的数值,并没有取a--只是取a。a--是printf完成后才操作的。所以就会输出5。
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
也就是说用if判断之后a的结果还是保存的吗?if和else不是并列的吗谢谢啊
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
a要保存的,它是执行了if括号里的判断语句,为假时不执行if后面的语句再执行else,但判断语句要执行的。
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
那if和else不是并列的?为什么if的结果还要保留到else中使用呢
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
你这个结果是5
回复

使用道具 举报

千问 | 2011-6-27 02:10:41 | 显示全部楼层
对呀刚开始我解释了你的提问后面是给的输出是5的建议
还有疑问再解答
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行