请C语言大神帮忙解决下面的问题!

帮忙说一下解题过程,让我能看懂的

a并不等于7,b并不等于21,因为这样的代码是错误的代码

---

真的遭不住了,VC6是1998年的软件,马上就2020年了,还有人在用。

追问

自加自减不能混在一起写吗

追答

不是。简单来说,一个式子里不能又使用它的值又在别的地方改变它的值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-19

    先算第一个a++,这时候a++值是5,执行后a的值是6

    然后计算++a*2,因为++或--的优先级比*/%高,所以先算++a,因为a的值是6,所以++a的值是7,所以这个表达式的值是14

    接着算--a,因为a的值是7,所以--a的值是6,

    然后算最后一个a++,因为a的值是6,所以a++的值也是6

    最后算5+14+6+6=31,所以最后应该输出7,31

追问

用我的思路就是31,但是程序出来的结果b等于25的,要疯了,上面两位说这样写代码是错误的。。。

追答

代码没有问题,这道题Java里面输出的就是7,31,但是用VC++6.0输出就出现7,28

第2个回答  2019-12-19
这题无解 不同编译器会有不同结果 所以不要这样写程序……追问

在 visual studio 上面写的,就是不知道怎么去算出来的。。。

在C#中这个题知道怎么做

本回答被提问者采纳
相似回答