1. 运算符的优先级
——表达式中所有运算符参与运算的先后顺序称作运算符的优先级。常用运算符的优先级如下:
2. 运算符的结合性
——表达式中同一优先级的运算符在表达式中操作的结合方向。即当一个运算对象两侧运算符的优先级别相同时,运算对象与运算符的结合顺序。
(1)大多数运算符结合方向是“自左至右”。如:a-b+c 、a/b*c
(2)少数运算符(赋值运算符、条件运算符)的结合方向是“自右向左”。
如: int a,b,c,d,m;
a=b=c=d=10; //=赋值运算符自右向左
m=a>b?a:c>d?c:d; //条件运算符?:自右向左
//等价于 m=a>b?a:(c>d?c:d);
3. 运算符与表达式使用中的注意事项
(1)算术运算符中没有乘方运算符。乘方运算采用连乘形式,如a*a*a表示a的立方。
(2)两个整数相除,结果为整数。如1/2结果为0。解决方法:将其中一个写成带小数点的实数(如1.0/2或1/2.0)或者强制转换(如 (double)1/2 )。
(3)模运算符%只能用于整数求余,即两个参数均需是整数。如:8%2.5是错误的。
(4)b*=2+3; 语句相当于b=b*(2+3);
(5)C++中,等号是== ,而不是=(=赋值运算符),如if(a==b)如果写成了 if(a=b),结果大不相同。后者不是比较a与b是否相等,而是b赋值给a,如果b的值不为0,条件满足。
(6)逻辑非运算符(!)的优先级非常高。
(7)数学表达式 0<=x<=10 如何表示?
答:应该用逻辑表达式 if (x>=0&& x<=10 )来表示,绝不能写成if(0<=x<=10) ,后者是关系表达式,无论x为何值,条件永远为真。
(8)如何判断字符变量ch中是否存放的是字母?
答:用逻辑表达式 if(ch>='A' && ch<='Z' || ch>='a' && ch<='z' )
或者是
if(ch>=65 && ch<=90 || ch>=97 && ch<=122 )
(9) 判断字符变量ch是否是数字字符的逻辑条件是 if(ch>='0' && ch<='9' )
或者是 if(ch>=48 && ch<=57)