家人们,为啥结果是6啊,m++等于5,应该执行else语句,执行m--结婚应该等于4吧

img

m++先判断后再将自身值加1,所以m++不满足if中的条件,所以要执行else中的语句,执行完if中的判断后,m=6,printf("%d",m--)是先输出m的值再减一,所以输出为6

m++是先取m的值使用之后再自增,m--同理。
所以 m++ > 5,实际上比较的值是 5 > 5 不成立,此时的 m 就 ++ 变成6;
else 里面输出的 m--,先取 m 的值输出,就是 6,之后再 --,最终的 m 的值是 5,但是输出的是自减之前的值,6

首先m等于5,判断5 > 5不成立,然后执行++,此时等于6,进入else后先打印此时m的值为6,然后执行--,m最终的值为5;你可以在return 0 前面再加个打印看一下,m++/--这种写法是先用再执行++/--
可以这样理解下:

img

首先m++是先带入运算再执行++,所以先判断5>5,显然是错误的,所以执行else。因为(m++>5)是一个语句,所以结束后m=6。m–-先执行输出再运算,所以输出为6。 m的最终值是5,可以再输出一下看看。