天天看點

【004期】關系運算符、邏輯運算符

一、關系運算

若幹表達式用關系運算符連接配接而成,就構成關系表達式。

關系表達式中,表達式成立,其值為1(真);表達式不成立,其值為0(假)。

其他表達式中,其結果如果是非0則為真,結果為0則為假。

關系運算符的優先級低于算術運算符,高于指派運算符。

關系運算符号:> >= < <= !=

#include "stdio.h"void main()
{    //1、關系運算常用于比較    //2、關系運算隻有兩種結果,1真,0假
    int a=1,b=2,c=3;
    printf("\n %d",a==b);
    printf("\n %d",a>=b);
    printf("\n %d",a!=b);
    printf("\n %d",1<=2);
    printf("\n %d",c<2);
    printf("\n %d",a+b>c);
}      

結果為

【004期】關系運算符、邏輯運算符

二、邏輯運算

!(邏輯非)

運算規則:!1 = 0,!0 = 1 。優先級:高。

&&(邏輯與)

運算規則:1&&1=1,1&&0=0,0&&1=0,0&&0=0優先級:中

||(邏輯或)

運算規則:0||1=1,1||0=1,0||0=0,1||1=1。

優先級:低

注意:短路,當與運算時,第一個表達式為假時,不會再處理第2個表達式。

a&&b

當或運算時,第1個表達式為真是,不會再處理第2個表達式

a||b

注意:

另外使用時必須注意以下幾點:

代數中的不等式0<x<5必須寫成(x>0)&&(x<5)

C語言允許直接對數字或字元進行邏輯運算。

例如:!5,其結果為0。因為在C語言中,非0的值均認為是“真”,而5是個非零值,對非零值求反,即得零值。5&&‘c’,結果為1。因為字元'c'的ASCLL碼為非零的整數,非零值與非零值作“與”運算,結果為真。

三、運算優先級

【004期】關系運算符、邏輯運算符
【004期】關系運算符、邏輯運算符

(圖檔來源于百度百科)

運算符優先級由高到低依次降低

上期例句中有

​a = 2;
 b = 3;(a > b) ? (a++) : (b++);
 printf("a= %d ,b = %d \n", a, b);​      

是以我們可以有

a>b不成立則輸出 b++

此處++要點

++在前,則先自加1後運算,++在後,則先運算後自加1;

--同理;

又有