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>:<;表达式3>;
"?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值。
例如:
main()
{
int x, y;
x=50;
y=x>70?100:0;
}
本例中, y将被赋值0。如果x=80, y将被赋值100。
因此, "?"运算符可以代替某些if-then-else形式的语句。
二)"&"和"*"运算符
"&"运算符是一个返回操作数地址的单目操作符。
"*"运算符是对"&"运算符的一个补充, 它返回位于这个地址内的变量值, 也
是单目操作符。
例如:
main()
{
int i, j, *m;
i=10;
m=&i;          /*将变量i的地址赋给m*/
j=*m;          /*地址m所指的单元的值赋给j*/
}
上面程序运行后, i=10, m为其对应的内存地址, j的值也为10。
三)","运算符
","运算符用于将多个表达式串在一起, ","运算符的左边总不返回, 右边表
达式的值才是整个表达式的值。
例如:
main()
{
int x, y;
x=50;
y=(x=x-5, x/5);
}
上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给y。
四)sizeof运算符
sizeof运算符是一个单目运算符, 它返回变量或类型的字节长度。
例如:
sizeof(double) 为8
sizeof(int)    为2
也可以求已定义的变量, 例如:
float f;
int i;
i=sizeof(f);
则i的值将为4。
五)联合操作
Turbo C中有一特殊的简写方式, 它用来简化一种赋值语句, 适用于所有的
双目运算符。其一般形式为:
<;变量>=<;变量><;操作数><;表达式>
相当于
<;变量><;操作数>=<;表达式>
例如:
a=a+b        可写成a+=b
a=a&b        可写成a&=b
a=a/(b-c)    可写成a/=b-c
三Turbo C运算符的优先级
Turbo C规定了运算符的优先次序即优先级。当一个表达式中有多个运算符参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低, 同一行优先级相同。
例如:
表达式10>4&&!(100<99)||3<=5 的值为1
表达式10>4&&!(100<99)&&3<=5 的值为0
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━表达式┃优先级
────────────────────────────╂────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃最高
────────────────────────────┃↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃│
────────────────────────────┃│
*(指针所指内容) type(函数说明) sizeof(长度计算)    ┃│
────────────────────────────┃│
*(乘)    /(除)    %(取模)                        ┃│
────────────────────────────┃│
+(加)    -(减)                                    ┃│
────────────────────────────┃│
<<(位左移)          >>(位右移)                    ┃│
────────────────────────────┃│
<(小于)  <=(小于等于)  >(大于)  >=(大于等于)    ┃│
────────────────────────────┃│
==(等于)      !=(不等于)                          ┃│
────────────────────────────┃│
&(位与)                                          ┃│
────────────────────────────┃│
^(位异或)                                          ┃│
────────────────────────────┃│
|(位或)                                            ┃│
────────────────────────────┃│
&&(逻辑与)                ┃│
────────────────────────────┃│
||(逻辑或)                                        ┃│
────────────────────────────┃│
?
:(?表达式)                                        ┃│
────────────────────────────┃│
=    +=  -=(联合操作)                            ┃│
────────────────────────────┃│
,(逗号运算符)                                      ┃最低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。