表达式
表达式是由运算符和操作数构成的。
- 操作数:常量、变量和两者组合
- 运算符:C语言大约有40种运算符,有优先级 每一个表达式都有一个值!运算符的优先级为表达式的求值顺序提供了重要规则,但是它并不决定所有的顺序
y=6*12+5*20;
表达式的求值以运算符优先级作为参考,有的运算符与另一运算符共享操作数,那么此时的优先级就会正确指导我们表达式求值。
“+”与左右两边的“”共享12和5常量,优先级“”大于“+”,所以表达式会先执行“”,有一点需要注意,就是612和5*20都是的求值顺序不确定,哪个先计算不确定!由此可见,优先级并不决定所有顺序。
逻辑与和或短路求值逻辑与表示当且仅当两个运算符为真才为真;逻辑或表示只要其中一个为真则为真。无论是逻辑与还是逻辑或,两者都是从左往右进行求值,具体的,若逻辑与左侧为假,那么完全没有必要求右侧表达式(事实上C++也是这么做的),同样的,若逻辑或左侧为真,那么右侧的结果并不会改变其最终表达式的真假,所以也不会再进行计算求值。这个聪明的求值策略,称之为短路求值(short-circuit evaluation)。
if(a==1)
if(b==2)
dosomething();
也就是说,类似于上面语句放心使用等效语句:
if(a==1&&b==2)
dosomething();//保证了a==1才执行b==2的判断
取内容*
优先级小于数组[]
!!!