这是我的步骤,哪里出错了?
这个就是考一个运算符优先度的问题,首先你可以查看谭浩强那本书的后面有一个表,你会发现在你的所有运算符中++自增是最高的所以这个表达式先执行++操作,另外这个++在变量的前面,所以这个变量会先自增1,然后再执行-=操作,这个实质上就是自己减去自己,所以就是0,另外开发中不会去这么写,写这种会被锤的,多关注底层的东西。
用更加标准的回答就是,C语言的变量代表的是一个地址指向,既指针,对指针指向地址的数据操作后,变量的指向并没有发生改变,用两个相同指向的变量相剪,结果可想而知,要想完美的解释这种情况,一定要了解底层
不论a是多少,最后都是c=a-a,就读于0。因为=号优先级最低。有帮助请采纳谢谢!
确实意义不大,不应该写这种在不同编译器会产生不同结果的表达式。在jdk 1.8下,答案为-1