(7)运算符与表达式使用中的注意事项

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/21/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)

原文链接:,转发请注明来源!