编程论坛
注册
登录
编程论坛
→
C语言论坛
a=9,if(a++>9)输出a,为什么输出的是11
黑暗骑士5D
发布于 2019-11-25 19:12, 3308 次点击
有以下程序段运行时从键盘输入9<回车>, 则输出结果是( )。
int a;
scanf("%d",&a);
if(a++>9) printf("%d\n",a);
else printf("%d\n",a+1);
9 回复
#2
自学的数学
2019-11-25 20:11
11.
#3
c鳌白
2019-11-25 20:27
a=9,if(a++>9)输出a,为什么输出的是11
if(9+1>9)
成立等于9;
不成立10+1;
#4
forever74
2019-11-25 20:42
你吃了9个包子
判断 如果你吃了超过9个
(判断完以后你又把拿在手里的1个吃了)
那么 输出吃包子数
否则 输出吃包子数+1
#5
forever74
2019-11-25 20:45
如果没有理解后置++的精髓,
那一般是因为吃得太饱了。
#6
bcbbcclbbc
2019-11-25 22:27
回复 5楼 forever74
吃饱了就吃不下了
#7
三尺冰
2019-11-25 22:40
if(a++>9)会执行里面的表达式然后判断,++后缀用法,
出了if就变成10了,printf里又加1,就是11
#8
龙侃飞
2019-12-05 22:47
首先你要知道a++的用法是“先用后加”,即先用a和9比较,不论结果如何都加1,所以,在if里面判断后,无论结果如何aa都等于10,后面的就不用解释你也懂了
#9
rjsp
2019-12-06 09:20
a++ 这个表达式的评估值是 9,副作用是 a=10
#10
昊皇
2019-12-06 23:07
回复 楼主 黑暗骑士5D
a++>9;是先判断a>9,在++。所以是else,然后输出a+1,即10+1=11.
1