c++中代码: int a; cin>>a; if(a++>5)cout<<a; else cout<<a--; 输入4,结果怎么是5?

2025-01-03 15:34:18
推荐回答(3个)
回答1:

起初a=4
在执行a++>5时,应该是这样的顺序 a=4然后和5比较 ,再a自加1,此时a=5
所以它不满足括号中的条件,因而执行else的语句

a=5时执行cout<应该是输出5之后,再让a自减1

当递增运算符出现在操作数之前时,返回值是递增之后赋给变量的值。例如,x=1,a=++x,a就等于2了,然后x也等于2 ;
如果是后缀形式,那么返回值不会变 ,例如y=1, b=y++,这时b等于1,而y变成了2

回答2:

初始值a=4,a++表达式本身=4<5,但是a已经+1变成5了,所以执行else,表达式a--为5,但是a本身已经变成了4.而输出结果是a--这个表达式的值,所以是5.

回答3:

开始时a=4,a++先判断a=4<5然后a=a+1=5,输出时a为5,然后a=a-1=4 .所以输出的是5,输出完之后变为4