轉義字元是什麼?跟普通的字元或者說中文字元有什麼關系?
以UTF-8環境為例,在這個環境下,數字、字母、中文字元、轉義字元,都是一樣的,每一個字元都是一一對應一個01碼,而轉義字元的特殊之處在于,它們通常不可列印,也就是說看不到,比如換行符\n,回車符\r(關于這兩個符号,另一篇會有專門的内容讨論)、‘\t’ ‘\v’ ‘\f’(後邊介紹)。
其實所有的轉義字元分為兩種,除了一些不可列印的“可執行”字元需要用轉義字元表示之外,還有一些因為被系統使用做文法标示(直接可執行)的普通字元,為了避免二義性而重複,是以反倒要通過轉義字元來表示這些可執行字元本身的樣子,那就是:雙引号、單引号、反斜杠。
這塊梳理一下:
1 .所有字元分為:
- 普通列印字元:a,F,3
- 有特殊含義字元
- 普通列印字元加反斜杠(斜杠是除法):\t
- 字元本身表示特殊含義:“ \
2 .于是有這些需求
- 列印普通字元,正常打就好
- 列印特殊含義字元的特殊含義,正常打就好
- 列印特殊含義字元的字元
- 普通列印字元加反斜杠的,這種正常打就好
- 字元本身表示特殊含義的,這種比較特殊,列印方法很簡單,給他們加一個反斜杠
附:
(1)水準制表符(‘\t’)
一般來說,其在終端和檔案中的輸出顯示相當于按下鍵盤TAB鍵效果。一般系統中,顯示水準制表符将占8列。同時水準制表符開始占據的初始位置是第8*n列(第一列的下标為0)。例如:
puts("0123456\txx");
puts("0123456\t\txx");
在終端的輸出為
(2)垂直制表符(‘\v’)
垂直制表符不常用。它的作用是讓‘\v’後面的字元從下一行開始輸出,且開始的列數為“\v”前一個字元所在列後面一列。例如:
puts("01\v2345");
在終端輸出為
(3)換頁(‘\f’)
換頁符的在終端的中的效果相當于Linux中clear指令。終端在輸出‘\f’之後内容之前,會将整個終端螢幕清空空,然後在輸出内容。給人的該覺是在clear指令後的輸出字元串。