加号在前,先做加减再用数据,加号在后,先用数据再做加减。这是在分号前的表现。也就是说,用你的例子,a=8,在一个表达式内++a就相当于9,而a++还相当于8,但是在接着的下一个表达式内,两者都是9。就这么简单。但是如果同一表达式内出现括号且此类符号多次出现时就不好判断了,因为随编译器不同结果就不同,常出现意想不到的结果。
假设a=8
j=++a / a=9 j=9(a先自己加1,再把a的值赋给j)
j=a++ / j=8 a=9(先把a的值赋给j,a再自加1)
j=--a / a=7 j=7(a先自减1,再把a的值赋给j)
j=a-- / j=8 a=7(先把a的值赋给j,a再自减1)
++a是先自身+1,然后再参与运算。--a同理。只不过把加变减
a++是先参与运算,然后自身再+1. a--同理。
自增或自减,写在前面的优先级最高,编译后变量优先运算,写在后面优先级很低,比赋值操作还要低,优先级请参考教材,不能确定时就用括号~~
b=(a++)和b=++a结果是一样的,(GCC编译测试过)!
++a 先加后操作 因为加号在前面嘛。。所以先加
a-- 先操作后减 因为减号在后面嘛。。所以后减
依次类推
好记吧~~ 呵呵