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