字体
第(3/6)页
关灯
   存书签 书架管理 返回目录
表达式

    5.2.1 逻辑运算符极其优先次序

    C语言中提供了三种逻辑运算符:

    1) &&  与运算

    2) ||  或运算

    3) !   非运算

    与运算符&&和或运算符||均为双目运算符。具有左结合xìng。非运算符!为单目运算符,

    具有右结合xìng。逻辑运算符和其它运算符优先级的关系可表示如下:

    !(非)

    算术运算符

    关系运算符

    &&和 ||

    赋值运算符

    !(非)→&&(与)→||(或)

    “&&”和“||”低于关系运算符,“!”高于算术运算符。

    按照运算符的优先顺序可以得出:

    a>b && c>d   等价于    (a>b)&&(c>d)

    !b==c||d
    a+b>c&&x+yc)&&((x+y)
    5.2.2 逻辑运算的值

    逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:

    1. 与运算 &&:参与运算的两个量都为真时,结果才为真,否则为假。

    例如:

    5>0 && 4>2

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    由于 5>0 为真,4>2 也为真,相与的结果也为真。

    2. 或运算||:参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果

    为假。

    例如:

    5>0||5>8

    由于 5>0 为真,相或的结果也就为真。

    3. 非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。

    例如:

    !(5>0)

    的结果为假。

    虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反过来在判

    断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:

    由于 5 和 3 均为非“0”因此 5&&3 的值为“真”,即为 1。

    又如:

    5||0 的值为“真”,即为 1。

    5.2.3 逻辑表达式

    逻辑表达式的一般形式为:

    表达式  逻辑运算符  表达式

    其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。

    例如:

    (a&&b)&&c

    根据逻辑运算符的左结合xìng,上式也可写为:

    a&&b&&c

    逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。

    【例 5.2】

    main(){

    char c='k';

    int i=1,j=2,k=3;

    float x=3e+5,y=0.85;

    printf("%d,%d\n",!x*!y,!!!x);

    printf("%d,%d\n",x||i&&j-3,i
    pri
上一页 目录 下一页