C语言逻辑运算符

逻辑运算符是对两个含有关系运算符的表达式或逻辑值进行运算的符号,运算的结果为逻辑值。

逻辑运算符的表示形式、结合性等如表所示。

C语言逻辑运算符

对逻辑运算符做以下几点说明:
(1)“&&”和“||”是双目运算,需要两个操作数,如a&&b,a||b。而 “!” 是单目运算符,只需要要一个操作数,如!a。

(2)三个逻辑运算符的优先次序如图所示:

C语言逻辑运算符

由此可知,逻辑非的优先级高于逻辑与的优先级,而逻辑与的优先级又高于逻辑或的优先级。

(3)目前为止已经学习了算术运算符赋值运算符关系运算符逻辑运算符,这些运算符之间的运算优先顺序是逻辑非(!)运算符优先级最高,算术运算符优先级高于关系运算符,关系运算符又高于逻辑与(&&)和逻辑或(||),而赋值运算符优先级最低,如图所示:

C语言逻辑运算符

例如:

        10<x && y<100   p==q || x!=y

由于关系运算符的优先级高于逻辑与(&&),10<x && y<100等价于(10<x)&&(y<100)p= =q|| x!=y等价于(p= =q) || (x!=y)

逻辑运算规则

用逻辑运算符进行逻辑运算时,结果只有真或假两种情况,在C语言中,用 “非0”表示真,“0”表示假。因此逻辑运算有一定的运算规则,如表所示:

C语言逻辑运算符

从表可以看出:参加逻辑运算的对象,用 “0”表示假,用 “非0”表示真,由此看来,任何数值型的数据都可以看成逻辑值,所以逻辑运算符的运算对象可以是关系运算结果,还可以是整型、实数型及字符型等数据。例如:!(a>b)运算的对象为关系运算结果,4&&0||2运算的对象为整型数值。

逻辑运算的结果是一个逻辑值,即真或假。在C语言中,在判断一个逻辑运算对象是否为真时,以“非0”代表真,以“0”代表假,而在给出逻辑运算的结果时,以整型数值“1”代表真,以“0”代表假。例如:

        'B'&&10

‘B’的ASCII值为66,其值为非0,即为真;10为非0,也为真,对照表所示的逻辑符的运算规则表,两个运算对象都为真时,它们的逻辑与为真,因此 ‘B’&&10的运算结果为1,表示为真。

逻辑运算的运算规则可简单归纳为:

  • 逻辑与同真为真,即在进行逻辑与运算时,只有所有的运算对象都为真时,运算结果才为真,当有一个运算对象为假时,逻辑与的运算结果就为假。例如:
            a&&b&&c
    

    当a、b、c都为非0值时,该逻辑表达式为真,即逻辑结果为1,至少有一个为0,逻辑表达式就为假,值为0。

  • 逻辑或同假为假,即在进行逻辑或运算时,只有所有运算对象都为假时,运算的结果才为假,当有一个运算对象为真时,逻辑或的运算结果就为真。例如:

            a || b || c
    

    当a、b、c都为0值时,该逻辑表达式为假,即逻辑结果为0,至少有一个为非0,逻辑表达式就为真,值为1。

  • 逻辑非遇假变真,遇真变假,即运算对象为真时,逻辑非的结果为假,运算对象为假时,逻辑非的结果为真。例如:

            !a
    

    当a为非0值时,!a值为0;当a为0时,!a的值为1。

赞(0)

评论 抢沙发

评论前必须登录!