操作符是c語言學習中很重要的一部分。下面是我關於c語言學習中,對於操作符的總結。
1、算術操作符: + - * / %
+、-、*、/ :兩個數字相加減乘除。 這四個操作符可以用於整數和浮點數。特別注意用 『 / 』這個操作符時,如果兩個數都為整 數,那麼執行整數除法,有乙個數字為浮點數,則執行浮點數除法。除數為0沒有意義。
% :將兩個數字相除,取餘數。這個操作符的兩個運算元必須是整數。
例如 int a=44;
int b=10;
int c=a%b;
printf("%d",c); 輸出c的結果為4。
2、移位操作符: << >>
<< 左移操作符:(右邊補0,左邊拋棄)乙個數字的二進位制向左移一位,右邊補0
比如 :1 的二進位制: 00000000 00000000 00000000 00000001
左移一位: 00000000 00000000 00000000 00000010 結果為2
>> 右移操作符:1、邏輯移位(無符號數):左邊補0,右邊丟棄。
2、算數移位(有符號數) 左邊用該數字的符號位填充,右邊丟棄。右移時看變數自身的型別。
比如 :
-1 的二進位制位 (原碼)10000000 00000000 00000000 00000001
(反碼)11111111 11111111 11111111 11111110(除符號位,其他位按位取反)
(補碼)11111111 11111111 11111111 11111111(反碼加1)
int a= -1 右移:11111111 11111111 11111111 11111111
unsigned int a= -1 右移:01111111 11111111 11111111 11111111
3、位操作符: & | ^
&:按位與 有0出0,全1為1;
| : 按位或 有1出1,全0為0
^: 按位異或,相異為1,相同為0。
4、賦值操作符:=
5、復合賦值操作符
+= -= *= /= %= >>= <<= &= |= ^=
x=x+10 可以寫成 x+=10
6、單目操作符
! 邏輯反操作
& 取位址
sizeof 操作符的型別長度(以位元組為單位)
~ 對乙個數的二進位制位按位取反
++ (前置,後置)
– (前置,後置)
(型別) 強制型別轉換
注意:前置++(–):先++(–)再使用 ; 後置++(–): 先使用,再++(–)
sizeof 可以求陣列 元素個數: int a=;
int sum=0;
sum=sizeof(a)/sizeof(a[0]);
sizeof可以求陣列所佔空間大小 printf("%d"sizeof(a));
7、關係操作符
< <= > >= != ==
8、邏輯操作符
&& 邏輯與
|| 邏輯或
&&時,當 乙個表示式不成立時,不在檢查後面的表示式;
|| 時,當乙個表示式成立時,不在檢查後面的表示式。
連線兩個表示式
9、條件操作符
exp1?exp2:exp3
比如:int a=10;
int b=0;
if (a>5)
b=3else
b=-3; 可以改寫為 : a>5?b=3:b=-3
10、逗號表示式
exp1,exp2,exp3,expn
用逗號隔開多個表示式,從左向右依次執行。整個表示式的結果就是最後乙個表示式的結果。
10、下標引用和函式呼叫和結構成員
[ ] 下標引用操作符 :
運算元 : 乙個運算元+乙個索引值。
例如 : int a[10]; // 建立陣列
a[9]=10; //實用下標引用操作符 [ ] 的兩個運算元是 a和9
( ) 函式呼叫操作符 :
運算元:函式名或者是傳遞給函式的引數。(可以為1個或者多個)
例如: void test (int a)
int main()
// 實用( )作為函式呼叫操作符
訪問乙個結構的成員
. 結構體. 成員名
-> 結構體指標 ->成員名
例如:
11、隱式型別轉換
整型提公升
意義:表示式的整型運算要在cpu的相應運算器件內執行,cpu內整型運算器(alu)的運算元的位元組長度一般就是int
的位元組長度,同時也是cpu的通用暫存器的長度。
因此,即使兩個char型別的相加,在cpu執行時實際上也要先轉換為cpu內整型運算元的標準長度。
通用cpu(general-purposecpu)是難以直接實現兩個8位元位元組直接相加運算(雖然機器指令中可能有這種
位元組相加指令)。所以,表示式中各種長度可能小於int長度的整型值,都必須先轉換為int或unsignedint,然
後才能送入cpu去執行運算。
整形提公升是按照變數的資料型別的符號位來提公升的
方法://負數的整形提公升
charc1=-1;
變數c1的二進位制位(補碼)中只有8個位元位:
1111111
因為char為有符號的char
所以整形提公升的時候,高位補充符號位,即為1
提公升之後的結果是:
11111111111111111111111111111111
//正數的整形提公升
charc2=1;
變數c2的二進位制位(補碼)中只有8個位元位:
00000001
因為char為有符號的char
所以整形提公升的時候,高位補充符號位,即為0
提公升之後的結果是:
00000000000000000000000000000001
//無符號整形提公升,高位補0
12、操作符的屬性
複雜表示式的求值有三個影響因素:
1、操作符的優先順序; 2、操作符的結合性; 3、是否控制求值順序。
總結操作符
操作符 一 操作符的分類 1.算數操作符 2.位移操作符 3.位操作符 4.賦值操作符 5.單目操作符 6.關係操作符 7.邏輯操作符 8.條件操作符 9.逗號操作符 10.下標引用 函式呼叫和結構成員 二 逐個講解 1 算數操作符 1 除了 操作符之外,其他的幾個操作符可以作用於整數和浮點數。2 ...
操作符總結
通過一段時間的學習,我今天要給大家總結一下操作符。首先呢,操作符分為 算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 下標引用 函式呼叫和結構成員 接下來要具體介紹這些操作符有哪些作用,還有那些要注意的事項。1.算術操作符 除了 操作符之外,...
操作符總結
c語言操作符簡述 1.算數操作符 針對的是整形和浮點型的運算。其中乘除法對於整數的結果是整數,對於浮點數的結果是浮點數。2.移位操作符 右移操作符 右移操作時分為兩種情況 1 算數右移 二進位制有正負之分,補位時要注意符號位 不需要考慮符號位的問題,直接補0即可。3.位操作符 按位與 按位或 按位異...