请各位解答一下这个问题!

以下程序输出的结果是:
main()
{ int m=5;
if(m++>5)
ptintf("%d\n",m);
else
printf("%d\n",m--);
}
A.7
B.6
C.5
D.4
为啥答案是B呀,m++在表达式里是5呀,所以应该是else的语句,因此答案应该是5呀。请问我这样分析哪里有错。🙏🙏🙏🙏🙏

}

m++先判断是执行else语句, 但是m++之后m变成6了
printf("%d\n",m--);输出 先使用再自减,所以是6
哪里不明白可以再问我

m++是先判断在自增,所以判断时是判断5>5,为false,进入else分支,在else中,也是先输出,后自增,但m在前一个if结束后自增为6,所以此处先输出6,再--
有帮助望采纳~

先进来,m++是被执行过之后再加1,尼在if里面判断虽然不成立,但是也执行了一遍m++,所以在进else之前就是6了,然后下面else输出要先输出了再减一,这里你应该懂的,这些都是日常的经验,多练练就会了,加油