c語言運算子

2021-09-11 06:16:05 字數 1451 閱讀 8775

操作符按照所需變數的個數分類的話可以分為:

1.單目運算子。

2.雙目運算子。

3.三目運算子。

操作符功能備註!

邏輯非在邏輯上取反,真變為假,假變為真。-負號

用法與數學中相同,正變負,負變正。

~按位取反

必須是整數,且是在二進位制情況每一位分別進行取反。

++ - -

加加 減減

自身=自身+(-)1,都有字首與字尾的區別。

()型別轉換

()裡面寫你要轉換成的型別,如 int a;轉換成(char)a了字元型。

* &指標 取位址

運算中只有乙個變數的話,為指標運算子和取位址運算子。

sizeof()

求長度要求的變數或型別寫在括號內,求得的單位是位元組。

注意

1.按位取反的取多少位取決於作業系統,多少位系統,就取多少位,非負數往高位補0,但結果都相同。

2.++a為字首加加,a++為字尾++。區別在於字首為(a=a+1;)相當於先給自身加1,然後執行相關運算。字尾為(a=a;a=a+1;)相當於先自身執行相關運算,然後才自身+1。減減與加加相同。

3.sizeof()是操作符,不是函式。

操作符功能

備註+ - * /

加 減 乘 除

除運算子尾部不是四捨五入,是去尾法(去掉不需要保留的尾部)。=賦值

一般情況需要=左右兩邊是同一型別。

%求餘數

必須是整數,就是求餘數,如10%3=1。

&& 丨 丨

邏輯與 邏輯或

邏輯或丨丨離得很近,如下。

& 丨 ^

按位與 按位或 異或

都必須是整型,且是在二進位制情況下相同位分別進行運算。

> < >= <=

大於 小於

不能用11&&a<2。

== !=

恆等於 不等於

比較兩邊相等用==,而不是=。

>> <<

左移 右移

都必須是整型,且是在二進位制情況下向左或向右移位。

注意

1.||邏輯或。

2.>> 《開口向哪邊向哪邊移。向左移1位相當於/2;向右移一位相當於*2。負數向左移向高位補1,非負數向左移向高位補0;向右移統一向低位補0。和+ - * \一樣》 《並不會改變自身的值。

3.a+=1;等價於a=a+1;類似的還有-= 、 *= 、 /= 、 %= 、>>= 和<<=.。

(語句1)?(語句2) :(語句3);

語句1為真執行語句2,為假執行語句3.

如求兩數之間的較大數:

int max;

if(a>b)

else

可以用下面方法寫:

int max=a>b?a:b;

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...

C語言運算子

1級優先順序左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 字尾增量運算子 字尾增量運算子 2級優先順序右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 負號運算子 型別 型別轉換運算子 指標運算子 位址與運算子 sizeof 長度運算子 3級優先順序左結合 ...