3.7.10 使用运算符时的常见问题

如上所述,使用运算符时的一个问题是总不愿使用括号,即使在还不确定一个表达式如何计算时(可以查阅当前的C手册中表达式的计算顺序)。

另一个十分常见的错误如下所示:

3.7.10 使用运算符时的常见问题 - 图1

3.7.10 使用运算符时的常见问题 - 图2

当b不为零时,语句a=b总是为真。把b的值赋给a,而b的值也是由运算符“=”产生的。一般在条件语句中,应当使用等值运算符“==”,而不是赋值。这是许多程序员经常犯的错误(但是,一些编译器会指出这个问题,这是有帮助的)。

一个相似的问题是使用位运算符中的“与”和“或”,而不是和它们相对应的逻辑运算符。位运算符中的“与”和“或”使用一个字符(&或|),而逻辑“与”和“或”使用两个运算符(&&和||)。就像=和==一样,很容易会用一个字符替代两个字符。可以使用一种帮助记忆的方式“位比较小,所以在它们的运算符中不需要使用很多字符”。