1.算術運算子
假設a=6,b=4。
運算子描述例項+
兩個數相加
a + b 結果為 10
-第乙個數減去第二個數
a - b 結果為 2
*兩個數相乘
a * b 結果為 24
/第乙個數除以第二個數
a / b 結果為 1
%取模,第乙個數除以第二個數的餘數
a % b 結果為 2
++自增運算子,值增加 1
a++ 結果為 7
--自減運算子,值減少 1
b-- 結果為 3
示例**:
#includeintmain()
執行結果:
算術運算子a=6,b=4
a+b=10
a-b=2
a*b=24
a/b=1
a%b=2
a++ :7
b-- :3
2.關係運算子
假設a=6,b=4。
運算子
描述
例項
==判斷兩個值是否相等,相等則為真
a==b 返回假
!=判斷兩個值是否相等,不相等則為真
a!=b 返回真
>
判斷左邊的值是否大於右邊的值,是則為真
a>b 返回真
<
判斷左邊的值是否小於右邊的值,是則為真
a>=
判斷左邊的值是否大於等於右邊的值,是則為真
a>=b 返回真
<=
判斷左邊的值是否小於等於右邊的值,是則為真
a<=b 返回假
示例**:
#includeintmain()
執行結果:
關係運算子,0為假,1為真,非0為真a=6,b=4
a==b的值:0
a!=b的值:1
a>b的值:1a0
a>=b的值:1
a<=b的值:1
3.邏輯運算子
假設a=1(即值為真),b=0(即值為假)。
運算子描述
例項&&
邏輯與。如果兩個值都非0,則為真。
(a && b) 為假。
||邏輯或。如果兩個值有乙個非0,則為真。
(a || b) 為真。
!邏輯非。真的邏輯非為假,假的邏輯非為真。
!a 為假 !b 為真
示例**:
#includeintmain()
執行結果:
邏輯運算子,0為假,1為真,非0為真a=1,b=0
a&&b的值:0
a||b的值:1
!a的值:0
4.位運算子
位運算子有&(位與and)、|(位或or) 、^(位異或xor)、~(取反not)ab
a&ba|b
a^b~a00
0001
0101
1111
1100
1001
10運算子描述例項&
按位與操作,按二進位制位進行"與"運算。運算規則:
0&0=0;0&1=0;1&0=0;1&1=1;
(a & b) 將得到 12,即為 0000 1100
|按位或運算子,按二進位制位進行"或"運算。運算規則:
0|0=0;0|1=1;1|0=1;1|1=1;
(a | b) 將得到 61,即為 0011 1101
^異或運算子,按二進位制位進行"異或"運算。運算規則:
0^0=0;0^1=1;1^0=1;1^1=0;
(a ^ b) 將得到 49,即為 0011 0001
~取反運算子,按二進位制位進行"取反"運算。運算規則:
~1=-2;~0=-1;
(~a ) 將得到 -61,即為 1100 0011,乙個有符號二進位制數的補碼形式。
5.移位運算子
運算子描述
例項<<
二進位制左移運算子。將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0)。
a << 2 將得到 240,即為 1111 0000
>>
二進位制右移運算子。將乙個數的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。
a >> 2 將得到 15,即為 0000 1111
示例**:
#includeintmain()
執行結果:
位運算子a=60,b=13a&b的值:12a|b的值:61a^b的值:49
~a的十進位制值:-61移位運算子
a=60,b=13a<<2的值:240a>>2的值:15
6.賦值運算子
運算子描述例項=
簡單的賦值運算子,把右邊運算元的值賦給左邊運算元
c = a + b 將把 a + b 的值賦給 c
+=加且賦值運算子,把右邊運算元加上左邊運算元的結果賦值給左邊運算元
c += a 相當於 c = c + a
-=減且賦值運算子,把左邊運算元減去右邊運算元的結果賦值給左邊運算元
c -= a 相當於 c = c - a
*=乘且賦值運算子,把右邊運算元乘以左邊運算元的結果賦值給左邊運算元
c *= a 相當於 c = c * a
/=除且賦值運算子,把左邊運算元除以右邊運算元的結果賦值給左邊運算元
c /= a 相當於 c = c / a
%=求模且賦值運算子,求兩個運算元的模賦值給左邊運算元
c %= a 相當於 c = c % a
<<=
左移且賦值運算子
c <<= 2 等同於 c = c << 2
>>=
右移且賦值運算子
c >>= 2 等同於 c = c >> 2
&=按位與且賦值運算子
c &= 2 等同於 c = c & 2
^=按位異或且賦值運算子
c ^= 2 等同於 c = c ^ 2
|=按位或且賦值運算子
c |= 2 等同於 c = c | 2
示例**:
#includeintmain()
執行結果:
賦值運算子a=21
c=a運算,c 的值 = 21
c+=a運算,c 的值 = 42
c-=a運算,c 的值 = 21
c*=a運算,c 的值 = 441
c/=a運算,c 的值 = 21
a=21,c=200
c%=a運算,c 的值 = 11
c<<=a運算,c 的值 = 44
c>>=a運算,c 的值 = 11
c&=a運算,c 的值 = 2
c^=a運算,c 的值 = 0
c|=a運算,c 的值 = 2
7.其他運算子
運算子描述
例項sizeof()
返回變數的大小。
sizeof(a) 將返回 4,其中 a 是整數。
&返回變數的位址。
&a; 將給出變數的實際位址。
*指向乙個變數。
*a; 將指向乙個變數。
? :條件表示式
如果條件為真 ? 則值為 :前的值 ; 否則值為 :後的值。
示例**:
#includeintmain()
執行結果:
變數 a 的大小 =4位元組變數 b 的大小 =2位元組
變數 c 的大小 =8位元組
a 的值是
4*ptr 是 4
b 的值是
30b 的值是
20
8.c語言中運算子優先順序
類別 運算子
結合性
字尾 () -> . ++ - -
從左到右
一元 + - ! ~ ++ - - (type)* & sizeof
從右到左
乘除 * / %
從左到右
加減 + -
從左到右
移位 << >>
從左到右
關係 < <= > >=
從左到右
相等 == !=
從左到右
位與 and
& 從左到右
位異或 xor
^ 從左到右
位或 or
| 從左到右
邏輯與 and
&& 從左到右
邏輯或 or
|| 從左到右
條件 ?:
從右到左
賦值 = += -= *= /= %=>>= <<= &= ^= |=
從右到左
逗號 ,
從左到右
#includeintmain()
C語言 運算子與 運算子
我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...
C語言 運算子和 運算子
變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...
C語言運算子
1級優先順序左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 字尾增量運算子 字尾增量運算子 2級優先順序右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 負號運算子 型別 型別轉換運算子 指標運算子 位址與運算子 sizeof 長度運算子 3級優先順序左結合 ...