一、關系運算
若幹表達式用關系運算符連接配接而成,就構成關系表達式。
關系表達式中,表達式成立,其值為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);
}
結果為
二、邏輯運算
!(邏輯非)
運算規則:!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碼為非零的整數,非零值與非零值作“與”運算,結果為真。
三、運算優先級
(圖檔來源于百度百科)
運算符優先級由高到低依次降低
上期例句中有
a = 2;
b = 3;(a > b) ? (a++) : (b++);
printf("a= %d ,b = %d \n", a, b);
是以我們可以有
a>b不成立則輸出 b++
此處++要點
++在前,則先自加1後運算,++在後,則先運算後自加1;
--同理;
又有