1. == 和 = 不一样
在C语言中==
表示比较操作,而=
表示赋值操作。
2. 逻辑操作符和位操作符的区别
expression1 && expression2
expression3 || expression4
尽管&&
操作符的优先级较低,但它仍然会对两个关系表达式施加控制。
下面是它的工作原理: &&
操作符的左操作数总是首先进行求值,如果它的值为真,然后就紧接着对右操作数进行求值。如果左操作数的值为假,那么右操作数便不再进行求值,因为整个表达式的值肯定是假的,右操作数的值已无关紧要。||
操作符也具有相同的特点,它首先对左操作数进行求值,如果它的值是真,右操作数便不再求值,因为整个表达式的值此时已经确定。这个行为常常被称为"短路求值"
( short-circuited evaluation )。
!!!警告:位操作符常常与逻辑操作符混淆,但它们是不可互换的。
-
||
和&&
操作符具有短路性质,即如果表达式的值根据左操作数便可决定,它就不再对右操作数进行求值。与之相反,|
和&
操作符两边的操作数都需要进行求值。 -
其次,逻辑操作符特用于测试零值和非零值,而位操作符用于比较它们的操作数中对应的位。