c语言中的关系运算符和逻辑运算符[精].doc
文本预览下载声明
1.???????????????????????逻辑运算符
??? 逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。
??? Turbo C的逻辑运算符如下:
??????? 操作符????????????????????? 作用
─────────────────────────────
????????? ?????????????????????? 逻辑与
?????????||?????????????????????? 逻辑或
????????? !??????????????????????? 逻辑非
?
2.????????????????????关系运算符
??? 关系运算符是比较两个操作数大小的符号。
??? Turbo C的关系运算符如下:
??????? 操作符??????????????????????? 作用
─────────────────────────────
????????? ?????????????????????????? 大于
????????? =??????????????????????? 大于等于
????????? ?????????????????????????? 小于
????????? =??????????????????????? 小于等于
????????? ==????????????????????????? 等于
????????? !=???????????????????????? 不等于
??? 关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。Turbo C中
true可以是不为0的任何值, 而false则为0。 使用关系运算符和逻辑运算符表达
式时, 若表达式为真(即true)则返回1, 否则, 表达式为假(即false),?则返回0。
??? 例如:
???? 10099???????? 返回1
???? 10(2+10)????? 返回0
???? !10??????? ??返加0
??? 对上例中表达式!10, 先求!1和先求10将会等于出不同的结果,?那么何
者优先呢? 这在Turbo C中是有规定的。 有关运算符的优先级本节后面将会讲到。
?
3.????????????????????按位运算符
??? Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的
位操作有些相似。
??? Turbo C中按位运算符有:
??????? 操作符?????????????????????? 作用
────────────────────────────
????????? ??????????????????????? 位逻辑与
????????? |??????????????????????? 位逻辑或
????????? ^?????????????????????? 位逻辑异或
????????? -??????????????????????? 位逻辑反
????????? ???????????????????????? 右移
????????? ?????????????????? ??????左移
??? 按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符
型和整数型变量以及它们的变体, 对其它数据类型不适用。
??? 关系运算和逻辑运算表达式的结果只能是1或0。而按位运算的结果可以取0
或1以外的值。
??? 要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x8 的值为
真(两个非零值相与仍为非零), 而x8的值为0。
??? 移位运算符和是指将变量中的每一位向右或向左移动, 其通常形式
为:
???? 右移:???? 变量名移位的位数
???? 左移:???? 变量名移位的位数
??? 经过移位后, 一端的位被挤掉,?? 而另一端空出的位以0 填补,?? 所以,
Turbo C中的移位不是循环移动的。
?
4.????????????????????Turbo C的特殊运算符
一)?运算符
??? ?运算符是一个三目运算符, 其一般形式是:
????? 表达式1?表达式2:表达式3;
??? ?运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把
它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为
整个表达式的值。
??? 例如:
???? main()
???? {
????????? int x, y;
????????? x=50;
????????? y=x70?100:0;
???? }
??? 本例中, y将被赋值0。如果x=80, y将被赋值100。
???
显示全部