一、设f=a+b-c*d/e
1、乘除优先级高,先结合,乘除同级从左到右。即按优先级先结合乘法/除法,乘除结合性从左到右。
f=a+b-((c*d)/e);
2、再结合加减,同级从左到右结合。
f((a+b)-X);//X=((c*d)\e);
3、最后结合赋值运算符
(f=(Y-X))// Y=(a+b)
二、vs计算
1、vs计算:int a =1,b;
b=2+a++ +a++
vs版本:后置++,先运算,后自加1;
b=2+a+a //4;
a+=1; //a==2
a+=1; //a==3
2、vs版本:前置++,先自加1,后运算;
vs计算:b=2+ ++a+ ++a;
a+=1; //a==2
a+=1; //a==3
b=2+3+3; //10
3、vs计算:int a=2,c
c=a++ + ++a + a
a+=1; //a==3
b=3+3+3 //b=9
a+=1; //a==4
三、gcc下计算:
1、int a=2,b=2,c=0;
c=a++ + a;
a==2; 第一个a++
a+=1; //a==3第二个a
注意:这里的a++为2,执行了++之后a才变为了3;
所以:c=2+3; //c==5,a=3
2、c=a++ +a++ +a;
a==2;第一个a++
a+=1; //a==3第二个a++
a+=1; //a==4第三个a
c=2+3+4; //a==9
3、a++ + ++a +a;
a==2;第一个a++
a+=1; //a==3
a+=1;//a==4第二个++a和第三个a
*不管是vs还是gcc最终结果a或b加了几次的结果都是一致的无变化;