编程(从入门到入土)8
初識操作符
操作符分為:1.賦值操作符 2.單目操作符 3.關系操作符 4.邏輯操作符 5.條件操作符 6.逗號表達式 7.算數操作符 8.移位操作符 9.位操作符 10.下標引用、函數調用和結構成員。
1.賦值操作符
符號:= += -= = /= %= >>= 進行簡單賦值操作+=、-=、=、/=、%=、>>=、 復合賦值符,進行復合賦值操作
ps:賦值操作符可以連續使用。
2.單目操作符
符號: ! - + & sizeof ~ -- ++ * (類型)
符號說明:
! ---> 邏輯反操作
- ---> 負值
+ ---> 正值
& ---> 取地址
sizeof ---> 操作數的類型長度(單位:字節)
~ ---> 對一個數的二進制按位取反
-- ---> 前置、后置--
++ ---> 前置、后置++
* ---> 解引用操作符
(類型)-->強制類型轉換
ps:
1.sizeof是一個操作符,關鍵字,而不是函數,求的是操作數的類型長度(以字節為單位)。
2.sizeof求類型的長度時不可省略括號,求變量的長度時可以省略括號。
3.!操作符是對一個數做邏輯反操作,而~操作符是對一個數的二進制按位取反。
4.前置++、前置--是先使用,再++;而后置++、后置--是先--,再使用。
知識小填充:既然有單目操作符那必然有雙目操作符,那二者的區別是什么?
單目操作符:只有一個操作數 雙目操作符:有兩個操作數 如:+
3.關系操作符
符號:> < >=
符號說明: > ---> 測試“大于”
< ---> 測試“小于”
>= ---> 測試“大于等于” 測試“小于等于” != ---> 測試“不等于” == ---> 測試“等于” ps: 1.判斷字符串是否相同應該用strcmp()函數,而不能用==比較。 2.編寫程序代碼時一定注意=和==的區別,不要寫錯,=是做賦值操作,而==才是判斷是否相等。
4.邏輯操作符
符號: &&? ? ||
符號說明:
&&? --->? ? 邏輯與操作(只要有一個表達式為假便為假,不再執行后面的表達式)
?||? ? --->? ? 邏輯或操作(只要有一個表達式為真便為真,不再執行后面的表達式)
ps:
1.一定注意按位與和邏輯與,按位或和邏輯或的區別。
2.邏輯與中,只要有一個表達式為假,便不再執行后面的表達式,直接返回假;
? ?邏輯或中,只要有一個表達式為真,便不再執行后面的表達式,直接返回真。 知識小補充:按位與是針對兩個二進制數的運算,要求兩個二進制數位數相同;而邏輯運算與是針對邏輯電平的與運算,可以簡單地理解為1位二進制的按位與運算。
具體來說,邏輯電平永遠只有一位,而對于二進制數來說,可以有多位數,所以,二者在運算上的本質區別是與運算位數的區別,而實際使用的區別是前者多為數據處理,后者多為條件判斷。
5.條件操作符
符號:exp1 ? exp2 : exp3
符號說明:
exp1 ? exp2 : exp3? ? --->? ?三目表達式,若表達式1(exp1)為真則返回表達式 2(exp2),否則返回表達式3(exp3)
6.逗號表達式
符號:exp1, exp2, exp3, ..., expN
符號說明:
exp1, exp2, exp3, ..., expN? ?--->逗號表達式(用逗號隔開的表達式),從左往右依次執行。整個表達式的結果為最后一個表達式的結果。
ps:逗號表達式的結果雖然是最后一個表達式的結果,但不可認為與前面的表達式就無關了,因為前面表達式可能會影響最后一個表達式的結果。
7.算數操作符
符號:+ - * / %
符號說明:
- ---> 分別用于整數及浮點數的加法
- ---> 分別用于整數及浮點數的減法
- ---> 分別用于整數及浮點數的乘法
/ ---> 分別用于整數及浮點數的除法
% ---> 用于返回兩個整數相除的余數
ps:
1.+、-、*、/這四個運算符均可用于整數及浮點數的運算。
2.當使用/運算符時,如果兩個操作數均為整型,那么執行整數除法,運算結果也為整型;如果兩個操作數至少一個為浮點數,那么執行浮點數運算,運算結果為浮點型。
3.%運算符只能用于兩個整數相除,返回余數。
8.移位操作符
符號:>
符號說明:
左移運算符,用于將整數左移指定位數
>>---> 右移運算符,用于將整數右移指定位數 移位規則: >(右移運算符):當進行邏輯移位時,右邊位丟棄,左邊空缺位補0(右邊丟棄,左邊補0); 當進行算術移位時,右邊位丟棄,左邊位補原數的符號位(右邊丟棄,左邊補符號位)。
知識小填充:邏輯位移與算數位移的區別是什么?
對于邏輯移位,就是不考慮符號位,移位的結果只是數據所有的位數進行移位。根據移位操作的目的,左移時,低位補0,右移時,高位補0;
而對于算數位移,算術是帶有符號的數據,所以我們不能直接移動所有的位數,這可能會使得符號不正確。
ps:1.移位操作不改變原值。2.移位時不能移負數位。?
9.位操作符
符號:&? ? |? ? ? ^
符號說明:
&? ? --->? 按位與(有0出0)
?|? ? ?--->? 按位或(有1出1)? ??
?^? ? ?--->? 按位異或(相同為0,相異為1)?
整數在內存中儲存的是補碼。一個整數的二進制表示有三種:原碼、反碼、補碼。
如:-3:
1000 0000 0000 0000 0000 0000 0000 0011(原碼)
1111 1111 1111 1111 1111 1111 1111 1100(反碼)
1111 1111 1111 1111 1111 1111 1111 1101 (補碼)
原碼-->反碼:符號位不變,其他位按位取反。
反碼-->補碼:在反碼的基礎上+1。
ps:正整數原碼、反碼、補碼相同。
10.下標引用、函數調用和結構成員
?10.1下標引用
符號:[ ]
符號說明:
[ ]? ? --->? ?下標引用操作符,有兩個操作數(數組名和索引值)
ps:下標引用共有兩個操作數(數組名和索引值)。
10.2函數調用
符號:()
符號說明:
()? ?--->? 函數調用操作符,有一個或多個操作數(函數名和參數)。
??ps:函數調用操作符有一個或多個操作數。
?10.3結構成員
符號: .? ? ->
符號說明:
.? ?--->? ?結構體對象.成員名
->??--->? 結構體指針->成員名
ps:當結構體中有數組成員時,給該成員賦值用用strcpy()函數,將目標串拷貝給該數組成員。注意:當結構體中有數組成員時,給該成員賦值用用strcpy()函數,將目標串拷貝給該數組成員。
總結
以上是生活随笔為你收集整理的编程(从入门到入土)8的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加载mysql驱动的语句_sql数据库驱
- 下一篇: PV操作 阅览室登记问题