int a=7
int b=3
int x
x=++a*b--;
结果为什么等于24请帮忙解释一下。
                              谢谢

解决方案 »

  1.   

    x=++a*b--;
    a=a+1;x=a*b;b=b-1
    a=8,x=24,b=2++a先自增,b--先做乘法运算再做自减
      

  2.   

    1. 运算符++的优先级要比*高,所以++a先被运行
    2. --运算符是在所修饰的变量得到执行以后才被运行,所以在参与乘积运算的时候b的值还是3,运算完成后b的值变为2
      

  3.   

    int a=7
    int b=3
    int x
    x=++a*b--;
    上面的每条语句都要加上“;”,
    x=++a*b--;
    因为++a和b--是一体的,++或--在前面的意思是先算自增自减,再运算整个表达式,在后面的话就是先运算表达式再自增自减。
    你可以运行x=++a*b--;后,分别打印出a和b的值看看就知道了。
      

  4.   

    对于前缀式++a是在执行完运算后才得到值,对于后缀式b++则是运算执行前就得到值,运算符++的优先级要比*高,++a要先被运行.
    ++a*b--
     ││
     8*3 
      ┗24