以后不要轻易说自己学过C语言的
这天班里面有个同学 ——
征集c语言答案: int f = 5; int e = ++f+++f+++f+++f; cout<更一般的答案是 31,原因是 VC 等编译器不是从右往左扫描计算,“++”比“+”有更高的优先级。这样:
^1 e = ++f + ++f + ++f + f;
(f=6)
^2 e = ++f + ++f + f + f;
(f=7)
^3 e = ++f + ++f + 14; 这里开始堆栈里面才有数据
(f=7)
^4 e = ++f + f + 14;
(f=8)
^5 e = ++f + 22;
(f=8)
^6 e = f + 22;
(f=9)
^7 e = 31;
这个小问题教育了我们这些从 C 学到 Java 外加好几种二次开发的毕业生一个道理,以后不要轻易说自己学过 C 语言的。