int a=1,b=2,c,d,e;
c=(-a++)+(++b);
d=(b--)+(++a)-a;
e=(a/(++b))-(a/(--a));
请问a,b,c,d,e的结果是:____2、3、2、3、0___。
分析:
//(-a++),-与++同一级,又右结合,故先进行a++,而a++的值为1,++b的值为3,故-1+3=2;//此时a=2,b=3,c=2
c=(-a++)+(++b);
//根据优先级,括号中,从左到右,先算括号中得内容,括号中算b--,值为3,b=2,(++a)的值为3,a=3,故,最后得得式子为3+3-3=3
//此时,a=3,b=2,d=3
d=(b--)+(++a)-a;
//括号的优先级大于/,故此时b=3,++b=3,根据括号的结合性,先算第一个括号,此时第二个括号值还并未算,所以第一个扩号a=3,第一个括号中值算完后,第二个括号中--a=2,a=2,故e=1-1=0
e=(a/(++b))-(a/(--a));
所以a=2,b=3,c=2,d=3,e=0
|