📄 25.htm
字号:
C中 <br>
true可以是不为0的任何值, 而false则为0。
使用关系运算符和逻辑运算符表达 <br>
式时, 若表达式为真(即true)则返回1, 否则,
表达式为假(即false), 则返回0。 <br>
例如: <br>
100>99
返回1 <br>
10>(2+10)
返回0 <br>
!1&&0
返加0 <br>
对上例中表达式!1&&0,
先求!1和先求1&&0将会等于出不同的结果,
那么何 <br>
者优先呢? 这在Turbo C中是有规定的。
有关运算符的优先级本节后面将会讲到。 </p>
<p> 5.3 按位运算符 <br>
Turbo C和其它高级语言不同的是它完全支持按位运算符。
这与汇编语言的 <br>
位操作有些相似。 <br>
Turbo C中按位运算符有: <br>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<br>
操作符
作用 <br>
────────────────────────────
<br>
&
位逻辑与 <br>
|
位逻辑或 <br>
^
位逻辑异或 <br>
-
位逻辑反 <br>
>>
右移 <br>
<<
左移 <br>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<br>
按位运算是对字节或字中的实际位进行检测、设置或移位,
它只适用于字符 <br>
型和整数型变量以及它们的变体,
对其它数据类型不适用。 <br>
关系运算和逻辑运算表达式的结果只能是1或0。
而按位运算的结果可以取0 <br>
或1以外的值。 <br>
要注意区别按位运算符和逻辑运算符的不同,
例如, 若x=7, 则x&&8 的值为 <br>
真(两个非零值相与仍为非零), 而x&8的值为0。
<br>
移位运算符">>"和"<<"是指将变量中的每一位向右或向左移动,
其通常形式 <br>
为: <br>
右移:
变量名>>移位的位数 <br>
左移:
变量名<<移位的位数 <br>
经过移位后, 一端的位被"挤掉",
而另一端空出的位以0 填补, 所以, <br>
Turbo C中的移位不是循环移动的。 <br>
5.4 Turbo C的特殊运算符 <br>
一、"?"运算符 <br>
"?"运算符是一个三目运算符,
其一般形式是: <br>
<表达式1>?<表达式2>:<表达式3>;
<br>
"?"运算符的含义是:
先求表达式1的值, 如果为真, 则求表达式2
的值并把 <br>
它作为整个表达式的值; 如果表达式1
的值为假, 则求表达式3 的值并把它作为 <br>
整个表达式的值。 <br>
例如: <br>
main() <br>
{ <br>
int x, y; <br>
x=50; <br>
y=x>70?100:0; <br>
} <br>
本例中, y将被赋值0。如果x=80,
y将被赋值100。 <br>
因此, "?"运算符可以代替某些if-then-else形式的语句。
</p>
<p> 二、"&"和"*"运算符
<br>
"&"运算符是一个返回操作数地址的单目操作符。
<br>
"*"运算符是对"&"运算符的一个补充,
它返回位于这个地址内的变量值, 也 <br>
是单目操作符。 <br>
例如: <br>
main() <br>
{ <br>
int i, j, *m; <br>
i=10; <br>
m=&i;
/*将变量i的地址赋给m*/ <br>
j=*m;
/*地址m所指的单元的值赋给j*/ <br>
} <br>
上面程序运行后, i=10, m为其对应的内存地址,
j的值也为10。 </p>
<p> 三、","运算符 <br>
","运算符用于将多个表达式串在一起,
","运算符的左边总不返回, 右边表 <br>
达式的值才是整个表达式的值。 <br>
例如: <br>
main() <br>
{ <br>
int x, y; <br>
x=50; <br>
y=(x=x-5, x/5); <br>
} <br>
上面程序执行后y值为9, 因为x的初始值为50,
减5后变为45, 45除5为9赋给 <br>
y。 <br>
</p>
<p> 四、sizeof运算符 <br>
sizeof运算符是一个单目运算符,
它返回变量或类型的字节长度。 <br>
例如: <br>
sizeof(double) 为8 <br>
sizeof(int)
为2 <br>
也可以求已定义的变量, 例如:
<br>
float f; <br>
int i; <br>
i=sizeof(f); <br>
则i的值将为4。 </p>
<p> 五、联合操作 <br>
Turbo C中有一特殊的简写方式,
它用来简化一种赋值语句,
适用于所有的 <br>
双目运算符。其一般形式为: <br>
<变量>=<变量><操作数><表达式>
<br>
相当于 <br>
<变量><操作数>=<表达式>
<br>
例如: <br>
a=a+b
可写成 a+=b <br>
a=a&b
可写成 a&=b <br>
a=a/(b-c)
可写成 a/=b-c <br>
5.5 Turbo C运算符的优先级 <br>
Turbo C规定了运算符的优先次序即优先级。
当一个表达式中有多个运算符 <br>
参加运算时,
将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,
<br>
同一行优先级相同。 <br>
例如: <br>
表达式
10>4&&!(100<99)||3<=5 的值为1 <br>
表达式
10>4&&!(100<99)&&3<=5 的值为0
</p>
<pre><font size="4"> </font><font size="5"> </font><font
size="4" face="宋体"> Turbo C运算符的优先次序
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)( 最高)
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)
*(指针所指内容) type(函数说明) sizeof(长度计算)
*(乘) /(除) %(取模)
+(加) -(减)
<<(位左移) >>(位右移)
<(小于) <=(小于等于) >(大于) >=(大于等于)
==(等于) !=(不等于)
&(位与)
^(位异或)
|(位或)
&&(逻辑与)
||(逻辑或)
?:(?表达式)
= += -=(联合操作)
,(逗号运算符) ( 最低)</font>
</pre>
</td>
</tr>
</table>
</center></div><div align="center"><center>
<table border="0" cellspacing="1" width="640">
<tr>
<td class="p9" height="60"> <script>document.write("<p><a href=\"http://view.gznet.com/cgi-bin/rl_views.cgi?UID=10013421\" target=sxrl>");
document.write("<img src=\"http://refer.gznet.com/cgi-bin/rl_refer2.cgi?UID=10013421&refer="+escape(top.document.referrer)+"\" width=1 height=1 border=0 alt=\" \">");
document.write("</a>");
</script></td>
</tr>
</table>
</center></div>
<p> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -