C語言-逃逸字符
逃逸字符是用來表達無法印出來的控制字符或者特殊字符,它由一個反斜杠“\”開頭,后面跟上另一個字符,這兩個字符合起來,組成一個字符。
\b是backspace,在sublime中顯示為BS,如果后面不輸入的,它就什么結果都沒有,如果輸入的話會覆蓋回退前的那個字符。所以\b是回去但不刪除,它由的終端可能是刪除。
#include <stdio.h>
int main()
{
printf("123\b\n456");
return 0;
}
//結果:123
//456
//換成printf("123\bA\n456");
//結果:12A
//456
\t:使得輸出從下一個制表符開始,這樣使得上下兩行對齊。
回車和換行來源於古老的打印機,打字從一側打到另一側用手推回原位叫回車,然后再換行。注意:平時我們只打/n就換行了,是因為shell一般會將其翻譯為回車換行
C語言-類型轉換
自動類型轉換
當運算符的兩側出現不一致的類型時,會自動轉換成較大(或較寬)的類型,大的意思是說能表達的數的范圍更大。
-
char->short->int->long->long long
-
int->float->double
-
對於printf,任何小於int的類型都會被轉換成int;float會被轉換成double,這也是為什么在printf時直接使用%f就足以輸出double,不用%lf的原因,但是scanf不會,要輸入short,它要明確知道后面變量的大小,需要%hd。
強制類型轉換
- 要把一個量強制轉換成另一個類型(通常是較小的類型),需要,(類型)值。比如:(int)10.2;(short)32。但注意這時候的安全性,小的變量不總能表達大的變量。例如short(32768),short最多只能表達32767,所以此時的結果就是-32768,char(32768)的結果是0,因為32768是15個bit的0,第16是1,對於char來說取最低的那8個bit就只能看到0。
- 強制轉換只是從那個變量計算出了一個新的變量類型的值,它並不改變那個變量,無論是值還是類型都不改變。
- 強制類型轉換的優先級高於四則運算。
C語言-布爾類型
-
include <stdbool.h> ,之后就可以使用bool和true、false
- 實際上沒有真正的布爾類型,它還是整數,因此在輸入輸出的時候,並沒有特殊的形式輸入輸出布爾量,只能把它輸出一個整數。