5。首先你应该分清a++,与++a,--a的区别标准C规定,表达式a++的右值等于a的右值; (a++的右值为原a的右值) ++a的右值等于a的右值加1后的值 a++与++a都是先执行 a+1,但前者的右值还不变,要等运行完此语句,a的值才变为原来的值加1,后者是已经改变了a的值 程序分析,程序是顺序执行,先会判断if条件,判断完if条件之后a变为了6,再运行else中的,最后结果为 5 (答案不一定是正确的,说不定出题的老师没有自己上机调试,一时疏忽呢)
5 因为a++执行完后a=6 --a 后a=5 追问 a++执行完后, a==6 ,那就是 a > 5吧。。 那为何还会执行 --a 呢。。 追答 不是 执行完if以后才是a=6,之前a还是等于5a++是先取出a,再加1,++a先加1后取a,可以采纳吗