c语言中的关系运算符和逻辑运算符

发布时间:2018-06-28 23:52:32   来源:文档文库   
字号:

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中按位运算符有:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

        操作符                       作用

────────────────────────────

          &                        位逻辑与

          |                        位逻辑或

          ^                       位逻辑异或

          -                        位逻辑反

          >>                         右移

          <<                         左移

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符

型和整数型变量以及它们的变体, 对其它数据类型不适用。

    关系运算和逻辑运算表达式的结果只能是10。而按位运算的结果可以取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, 4559赋给

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(长度计算)     │

──────────────────────────── │

     *()     /()     %(取模)                         │

──────────────────────────── │

     +()     -()                                     │

──────────────────────────── │

     <<(位左移)          >>(位右移)                      │

──────────────────────────── │

     <(小于)   <=(小于等于)   >(大于)   >=(大于等于)     │

──────────────────────────── │

     ==(等于)       !=(不等于)                           │

──────────────────────────── │

     &(位与)                                             │

──────────────────────────── │

     ^(位异或)                                           │

──────────────────────────── │

     |(位或)                                             │

──────────────────────────── │

     &&(逻辑与)                                          │

──────────────────────────── │

     ||(逻辑或)                                          │

──────────────────────────── │

     ?:(?表达式)                                         │

──────────────────────────── │

     =    +=   -=(联合操作)                              │

──────────────────────────── │

     ,(逗号运算符)                                      最低

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

本文来源:https://www.2haoxitong.net/k/doc/45800fc8d4d8d15abe234ece.html

《c语言中的关系运算符和逻辑运算符.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式