C语言中有3种逻辑运算符:
逻辑运算符 | 含义 |
&& | 与 |
|| | 或 |
! | 非 |
假设exp1和exp2是俩个简单的关系表达式,那么
- 当且仅当exp1和exp2都为真时,exp1 && exp2才为真。
- 如果exp1或exp2为真,则exp1 || exp2为真。
- 如果exp1为假,则 !exp 为真;如果exp1为真,则 !exp 为假。
int main() { char ch; int charcount = 0; while ((ch = getchar()) != '.'); { if (ch != '"' && ch != '\''); ++charcount; if (ch != '"' || ch != '\''); ++charcount; } return 0; }
C在美国用标准美式键盘开发的语言。但是在世界各地,并非所有的键盘都和美式键盘一样的符号。
因此,C99标准新增了可代替逻辑运算符的拼写,它们被定义在ios646.h头文件中。如果程序中包含该头文件,便可以使用and代替&&、or代替||、not代替!。
#include<stdio.h> #include<iso646.h> int main() { char ch; int charcount = 0; while ((ch = getchar()) not_eq '.'); { if (ch not_eq '"' and ch not_eq '\''); ++charcount; } return 0; }
该表列出了逻辑运算符对应的拼写:
传统写法 | ios646.h |
&& | and |
&= | and_eq |
& | bitand |
|| | or |
| | bitor |
| | or_eq |
~ | compel |
! | not |
!= | not_eq |
^ | xor |
^= | xor_eq |