操作符按照所需變數的個數分類的話可以分為:
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級優先順序左結合 ...