有脏东西,在一些在线编程的网站上是8和5
在教程上这个本来结果应该是8和5
#include<stdio.h>
int main(void)
{
int a=3;
int b;
b=(++a)+(a++);
printf("a=%d,b=%d",a,b);
return 0;
}
真的无语了,输出结果却是9和5
目前出来结论是编译器不同,顺序规则不一样导致的
得出b=8是因为左到右个自加被单独计算了为4+4,而a++是在整个计算结束后才自加
而b=9的是因为括号优先级a的值是在变化的,++a后a的值就为4了,之后在括号内又一次自加变为5
Comments NOTHING