C語言操作符概括

2021-08-09 12:53:47 字數 2853 閱讀 1084

c語言操作符是說明特定操作的符號,是構造c語言表示式的工具,除基本的算術、邏輯、關係運算子之外,還有一些較為特殊的操作符,如位操作符等。現在對c語言操作符進行乙個大體的概括:

一、算術運算子

算術運算子除了包括「+、—、*、/「四種基本的運算之外還有」%(取模)、++(自增運算)、- -(自減運算)」三種運算子。其具體使用方法如下:

+:兩個數相加;

-:兩個數相減;

*:兩個數相乘;

/:兩個數相除,取整數為最終結果;

%:兩個整數相除,取其餘數為最終結果;

對於自增運算子「++」和自減運算子「- -」來說,它們只能用於變數,不能用於常量或表示式,且又分為前置自增、後置自增,前置自減、後置自減,假設有一變數i,在程式中,i++是先使用i之後對i進行加1,++i是使用i之前先進行加1,對於「- -」來說也是一樣的使用方法。例如:

i=3;

printf("%d",i++);//輸出的值之為3;

改為:printf("%d",++i);//輸出值為4;

二、邏輯運算子

c語言支援所有的關係邏輯運算子,邏輯運算子包括:「 && 」、「 || 」、「 ! 」。

「 && 」(邏輯與):對於兩個變數邏輯與來說,如果都為真,則值為真,當至少有乙個為0時,則值為假;

「 || 」(邏輯或):對於兩個變數邏輯或來說,如果都為假,則值為假,當至少有乙個為1時,則值為真;

「 ! 」(邏輯非):假設有變數a=1,那麼!a=0,若a=0,那麼!a=1。

三、關係運算子

c語言支援所有的關係運算子,假設有兩個變數m=1,n=2,具體如下:

「==」(等於):檢查兩個數的值是否相等,若相等則條件為真,例:m==n,不為真;

「 != "(不等於):判斷兩個數的值不相等,若不相等則條件為真,例:m!=n,為真;

">":判斷左運算元的值是否大於右運算元,若大於則條件為真,例:m>n,不為真;

"<":判斷左運算元的值是否小於右運算元,若小於則條件條件真,例:m

「>=」:判斷左運算元的值是否大於等於右運算元,若大於等於則條件為真,例:m>=n,為假;

「<=」:判斷左運算元的值是否小於等於右運算元,若小於等於則條件為假,例:m<=n,為真。

四、位運算子

位運算子作用於位,並逐位進行操作,假設有兩個變數m,n,其中m=60,其二進位制為:0011 1100;n=13,二進位制為:0000 1101,具體如下:

「&」:存在兩個運算元,對它們的二進位制逐位進行按位與操作,若都為1則值為1,若至少存在乙個0則值為0;

」 | 「:存在兩個運算元,對它們的二進位制逐位進行按位或操作,若都為0則值為0,若至少存在乙個1則值為1;

「 ^ 」:存在兩個運算元,對它們的二進位制逐位進行按位異或操作,若同為1或同為0,則值為0,若不相同則值為1;

「 ~ 」:叫做二進位制補碼運算子,這是一元操作符,對乙個數的二進位制逐位進行取反;

例:m&n=0000 1100

m| n =0011 1101

m^n =0011 0001

~m=1100 0011

除上述的四種外,位運算子還有"<<"(左移運算子) 、">>"(右移運算子):

"<<":對m進行左移,m的值不變,結果發生變化;

">>":對m進行右移,m的值不變,結果發生變化,右移分為(1):算術右移:向右邊移動指定位數,左邊補符號位,正數補0,負數補1;(2)邏輯右移:向右邊移動指定位數,左邊補0;

例:m<<2結果為1111 0000,即240,它是對m的二進位制序列進行左移兩位,然後在右邊補0;(可看出左移一位有*2的作用)

m>>2結果為0000 1111,即15,它是對m的二進位制序列進行右移兩位,然後在左邊補符號位;(可看出右移一位有/2的作用,但這是對於整數而言)

五。賦值運算子

假設變數m、n、k:

「=」:賦值運算子,把右邊的值賦給左邊,如m=n,既是把n的值賦給m;

「+=」:相加且賦值,如m+=n,既是m=m+n,把m+n的值賦給m;

「-=」;相減且賦值,如m-=n,既是m=m-n,把m-n的值賦給m;

「*=」:相乘且賦值,如m*=n,既是m=m*n,把m*n的值賦給m;

「/=」:相除且賦值,如m/=n,既是m=m/n,把m/n的值賦給m;

「%=」:相模且賦值,如m%=n,既是m=m%n,把m%n的值賦給m;

「<<=":進行左移後賦值,如m<<=2,既是m=m<<2;

">>=":進行右移後賦值,如m>>=2,既是m=m>>2;

"&=":進行按位與後賦值;

"|=":進行按位或後賦值;

"^=":進行按位異或後賦值。

六、除了上述所列舉的運算子之外,還有一些重要的運算子:sizeof(),&,->,*,? :  ,(型別)

sizeof:返回變數的大小,如a為整數,那麼sizeof(a)=4;

*:間接訪問操作符,指向乙個變數,如*a;

? : :這是乙個三目運算子,其使用方法為:表示式1?表示式2:表示式3,若式1為真則執行式2,為假則執行式3;

(型別):強制型別轉換符;

->:這是乙個整體,用於指向結構體,若我們在c語言中定義了乙個結構體,然後宣告乙個指標指向這個結構體,那麼要用指標結構體中的資料,此時就要用到->;

逗號表示式:即乙個語句中有多個表示式,那麼是以乙個表示式的值為最終結果。

上述就是在c語言學習中會用到的操作符的概括,對於多個操作符同時出現在乙個語句中時,優先順序較高的會先進行運算。

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

C語言 , 操作符

例如 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為cout hello world endl 例如 define concatenate x,y x y int xy 10 將會使編譯器把 cout conc...

C語言操作符

操作符的分類 1 算術操作符 2 移位操作符 3 位操作符 4 賦值操作符 5 單目操作符 6 關係操作符 7 邏輯操作符 8 條件操作符 9 逗號表示式 1 算術操作符 1 除了 操作符之外,不能用於浮點數。2 對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。...