1、資料型別轉換
不同資料型別變數混合運算時,要公升級。
short->int(字元型與整形通用)->float->double。
指標不與以上型別發生型別轉換。
等號右邊的轉化成等號左邊的型別。
並按照運算子優先順序順序進行。
2、轉義字元
用來表示ascii碼中無法表示的字元,用\+字元或者8或16進製制數來表示。
\n 轉到下一行
\b 退一格
\r 跳到本行最前
\t 向後跳4個字元長度
轉義字元佔乙個字元長度。eg: \t 為兩個字元長度。
注意:
(1)\後只能用小寫
(2)\v 垂直製表符和 \f 換頁符 對螢幕沒有影響,對列印有影響
3、關係和邏輯運算
運算子優先順序:
留一道題,我當初做錯的: !(a
4、自增自減
注意:(1)只能作用於變數
(2)放在變數之前,先增(或先減)再運算,放在變數之後,先運算,之後變數自身再增(或減)。
(3)結合方向:自右向左。
5、普通位計算
按位與(&)作用:
1、置零 43位與148 結果等於00000000
2、若想要取乙個數的低位元組(就是這個數的二進位制的最後八位),只需將這個數與8個1位與即可。
3、保留指定位 只需將這個數 與 另乙個這些指定位為1的二進位制數相與即可 example:
100110001 想要保留他左邊的的3,4,5,7位 則將他跟 101110100相與即可
按位或(|)作用:
如果想將乙個數的 後四位置為1 則將這個數的後四位跟1111或 即可
異或(^)運算方法:兩個數相同則結果為0 不同結果為1
異或運算應用:
1、使特定位翻轉 例如:想將01111010低四位翻轉(就是讓低四位1變0,0變1),可以將該數跟00001111進行異或運算。
2、與0相異或 保留原值
3、交換兩個值,不用臨時變數
例如:a=3,即11(2);b=4,即100(2)。 想將a和b的值互換,可以用以下賦值語句實現: a=a∧b; b=b∧a; a=a∧b; a=011(2) (∧)b=100(2) a=111(2)(a∧b的結果,a已變成7) (∧)b=100(2) b=011(2)(b∧a的結果,b已變成3) (∧)a=111(2) a=100(2)(a∧b的結果,a已變成4) 等效於以下兩步: ① 執行前兩個賦值語句:「a=a∧b;」和「b=b∧a;」相當於b=b∧(a∧b)。 ② 再執行第三個賦值語句: a=a∧b。由於a的值等於(a∧b),b的值等於(b∧a∧b), 因此,相當於a=a∧b∧b∧a∧b,即a的值等於a∧a∧b∧b∧b,等於b。 很神奇吧
c語言源**: #include main()
取反(~)運算子
他是一元運算子,用於求整數的二進位制反碼,即分別將運算元各二進位制位上的1變為0,0變為1
6~17位移運算及迴圈判斷語句重點內容
《c程式語言》讀書筆記
舉例如下 char a 10 1 定義的時候直接用字串賦值 char a 10 hello 注意 不能先定義再給它賦值,如 char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 3 利用strcpy char a 10 strcpy a,hello 易...
《C程式語言》 讀書筆記
在mac下可以使用sublime進行c語言程式編寫,然後通過命令列來執行c程式。在sublime新建乙個c程式,譬如 test.c include main 然後在命令列中執行 cc test.c編譯後會自動生成乙個a.out檔案,然後我們執行a.out檔案 test.c就會在命令行內列印出 hel...
《c程式語言》讀書筆記(一)1 4
自己的一些思考 1 printf和getchar的區別 scanf printf 可以輸入輸出各種型別的變數,比如int float char,而且同時輸入 輸出多個也可以 如scanf d,d a,b getchar putchar 只能輸入輸出char型別的變數,而且只能同時輸入輸出乙個字元 s...