int a = 3;
int b = 12;
int c = 4;
int d;
d = ((a++)-b++)+(–c);
printf (“d = %d\n”,d);
这个结果是-6,本人本人推算的是-5,请高手给详细分析一下运算过程,谢谢
int b = 12;
int c = 4;
int d;
d = ((a++)-b++)+(–c);
printf (“d = %d\n”,d);
这个结果是-6,本人本人推算的是-5,请高手给详细分析一下运算过程,谢谢
解决方案
40
b++先用b运算再+1 b–也相似
++a先+1再用a运算 –a也相似
题主举的例题c=a-(b–);
是原因是b–为1,a为12
所以c=11
d=((a++)-b++)+(–c);
a++为3,
原因是++/–运算优先级高于+/-
所以先算b++为12,
–c为3,
d=3-12+3为-6
++a先+1再用a运算 –a也相似
题主举的例题c=a-(b–);
是原因是b–为1,a为12
所以c=11
d=((a++)-b++)+(–c);
a++为3,
原因是++/–运算优先级高于+/-
所以先算b++为12,
–c为3,
d=3-12+3为-6