以下两条经验准则对书写符合表达式有益:
1.拿不准的时候最好用括号来强制让表达式的组合关系符合程序的逻辑要求。
2.如果改变了某个运算对象的值,在表达式的其他地方不要再使用这个运算对象。
对于大多数运算符来说,布尔类型的运算对象将被提升为int类型如 bool b=true ; bool b2=-b; b会先被提升为1 b2=-1 ,-1不为0,所以为true;
前置递增和后置递增
int i=0,j; j=++i;//j=1,i=1;前置版本得到递增后的值 j=i++;//j=1,i=2;后置版本得到递增后的值
除非必须,否则不用递增递减运算符的后置版本
原因:前置版本的递增避免了不必要的工作,它把值家1后直接返回了改变了的运算对象。与之相比,后置版本需要将原始值储存下来以便返回这个未修改的内容。如果我们不需要修改前的值,那么后置版本的操作就是一种浪费
条件运算符 cond? expr1:expr2; 随着条件运算层数的增加,代码的可读性急剧下降,条件运算的嵌套最好别超过两到三层。