void fun(){
int a = 8;
printf("%d %d %d %d %d %d\n", ++a, --a, a++, a--, -a++, -a--);
}
经常会遇到如上面这种无聊的问题,这是一道无厘头的面试题。
这道题目的答案,完全取决于编译器,答案并不唯一。
编程中的复合语句,最好是拆分开,比如int a = f()*g() + h();它的调用顺序,不一定是执行完f()再执行g()我们唯一能确定的只是*会再+前面完成。
如果f(),g()中存在共用的全局变量,这么调用很危险。