前几日看到一个博文,说某公司面试,问++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
在某些特殊场合,比如对于性能有高要求,那么易懂问题就不需要考虑。因为达不到这个程度的程序员,也不会维护这些代码。
这个是吾亲身遇到的编译器事情: