在c語言中有三種轉義字元,它們是:一般轉義字元、八進位制轉義字元和十六進製制轉義字元。
這種轉義字元,雖然在形式上由兩個字元組成,但只代表乙個字元。常用的一般轉義字元為:
其中,轉義字元'\\'代表的反斜槓"\"、轉義字元』\』』代表的字元"'"和轉義字元'\"'代表的字元"""。
q:其本身就是可顯示字元,為什麼還要對它轉義呢?
a:因為它們的原有的字元形式已作它用,其中,單引號用作區分字元常量的括號,雙引號用作區分字串(下面將要介紹字串)的括號,而反斜槓本身已用來表示轉義字元的開頭,因此必須對它們用轉義字元重新宣告。
(1)它是由反斜槓'\'和隨後的1~3個八進位制數字構成的字串行。
例如,'\60'、'\101'、'\141'分別表示字元'0'、'a'和'a'。因為字元'0'、'a'和'a'的ascii碼的八進位制值分別為60、101和141。
(2)字符集中的所有字元都可以用八進位制轉義字元表示,可以在八進位制數字前面加上乙個0來表示八進位制轉義字元。
(1)它是由反斜槓'\'和字母x(或x)及隨後的1~2個十六進製制數字構成的字串行。
例如,'\x30'、'\x41'、'\x61'分別表示字元'0'、'a'和'a'。因為字元'0'、'a'和'a'的ascii碼的十六進製制值分別為0x30、0x41和0x61。
(2)可見,字符集中的所有字元都可以用十六進製制轉義字元表示,可以在十六進製制數字前面加上0x來表示十六進製制轉義字元。
(3)由上可知,使用八進位制轉義字元和十六進製制轉義字元,不僅可以表示控制字元,而且也可以表示可顯示字元。
但由於不同的計算機系統上採用的字符集可能不同,因此,為了能使所編寫的程式可以方便地移植到其他的計算機系統上執行,程式中應少用這種形式的轉義字元。
呼叫printf顯示程式執行結果:
6756 7
程式在第一列輸出a值5之後就是「\n」,故回車換行;接著又是「\t」,於是跳到下一製表位置(設製表位置間隔為8),再輸出b值6和c 值7;後又是"\n",因此再回車換行;之後又輸出a值5和b值6;再次後"\t"跳到下一製表位置(與上一行的6 對齊),但下一轉義字元「\b」又使退回一格,故緊挨著6再輸出c值7。
使用轉義字元時需要注意以下問題:
(1)轉義字元中只能使用小寫字母,每個轉義字元只能看作乙個字元。
(2)\v垂直製表和\f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。
(3)在c程式中,使用不可列印字元時,通常用轉義字元表示。
(4)轉義字元』\0』表示空字元null,它的值是0。而字元'0'的ascii碼值是48。因此,空字元』\0』不是字元0。另外,空字元不等於空格字元,空格字元的ascii碼值為32而不是0。程式設計序時,讀者應當區別清楚。
(5) 如果反斜線之後的字元和它不構成轉義字元,則』\』不起轉義作用將被忽略。
例如:輸出:def
(6)轉義字元也可以出現在字串中,但只作為乙個字元看待。
例如:「\026[12,m」 //長度為6,這裡\026表示乙個八進位制字元
「\0mn」 //長度為0,注意這裡不是2,
//\0"是字串的結尾,這個字串其實只有"\0",後面的mn不是字串的內容,這其實就是個空字串,只有"\0"佔了乙個位元組的位置,所以長度為1
C C 中的轉義字元
a 蜂鳴,響鈴 b 回退 向後退一格 f 換頁 n 換行,游標到下行行首 r 回車,游標到本行行首 t 水平製表 v 垂直製表 反斜槓 單引號 雙引號 問號 ddd 三位八進位制 xhh 二位十六進製制 0 空字元 null 什麼都不做 注 1,v垂直製表和 f換頁符對螢幕沒有任何影響,但會影響印表...
c c 中的轉義字元
所有的ascii碼都可以用 加數字 一般是8進製數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。轉義字元 意義 ascii碼值 十進位制 a 響鈴 bel 007 b 退格 bs ...
c c 中的轉義字元
所有的ascii碼都可以用 加數字 一般是8進製數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。轉義字元 意義 ascii碼值 十進位制 a 響鈴 bel 007 b 退格 bs ...