前幾日看到一個博文,說某公司面試,問++i/i++有何不同。這個差異吾是知道的:
int i=5;
int a = i++; //a=5
int j=5;
int b = ++j; //b=6
吾知道這個差異,吾代碼中會絕對避免這個寫法。為什麼呢?有幾個原因:
- 閱讀困難,給維護帶來很大的麻煩。沒錯,這顯得汝有水準,維護起來并不友善。
- 關鍵:這種差異本身,并不可靠。在編譯器甲,可能是5、6;編譯器乙,執行結果可能就是5、5。一旦發生錯誤,幾乎不可能查到原因。
是以,吾絕對避免這種詭異寫法。使用最簡單、易懂的語句完成工作,是吾常常得意的事情。正确代碼寫法:
int i=5;
int a = i; //a=5
i++;
int j=5;
j++;
int b = j; //b=6
在某些特殊場合,比如對于性能有高要求,那麼易懂問題就不需要考慮。因為達不到這個程度的程式員,也不會維護這些代碼。
這個是吾親身遇到的編譯器事情:
https://blog.csdn.net/quantum7/article/details/105811292