这两天我看论坛里有好多贴子问的问题都是关于表达式的副作用的。所以就总结了这么一段,放在这里,让那些对表达式的副作用还是特别熟悉的朋友加深一下印象。

&&和|| 运算符从表达式的最左端开始运算。如果整个表达式的值确定为真,那么表达式的计算就会停止。
例如:
   if (a() || b())
   如果调用函数a() 返回真值,那么整个表达式就为真。这时就不会再调用b()函数。
再例:
   while (--a && --b)
   如果a自减后为0,那么整个表达式的值就为假,这样表达式中的b就不会自减了。
条件运算符(? :)也有同样的特点。
   amount= first ? a++ : b++;
   a和b中只能有一个能够自增。到底是哪一个,取决于first 的值。

QQ:275700424