這首先要從字符常量說起......
字符常量在計算機中存儲佔一個字節,8個位,256種組合方式,標準ASCII碼錶使用前7位,故一共有128個字符,擴展ASCII碼用上了第八位,這裏不予討論。標準ASCII碼錶的碼值從0到127排列,分爲可顯示字符和不可顯示字符,爲了表示那些不可顯示字符和部分在應用中會引起編碼歧義的字符如:反斜槓符[\],單引號符[‘],雙引號符[“],我們引入了轉義字符;
轉義字符是一類特殊的字符常量,以反斜線\開頭,後跟一個或幾個字符,不同於字符原有的意義,轉義字符具有特定的含義,故稱‘轉義’字符,如常見的\n,\t等;
而廣義的講,C語言字符集的任何一個字符都可以用轉義字符表示,有八進制轉義字符和十六進制轉義字符兩種表示形式(到重點啦!!!)
八進制轉義字符
- 形式:\ddd
表示ACSII碼值等於該八進制數的字符,最短一位\d,最長三位\ddd,若超過三位則超出部分不算在轉義字符內,八進制的前綴0可以省略,d的數值應爲0~7(部分高瀏覽量帖子把這裏搞錯了!!!);
- ddd表示的範圍從0到127,轉換爲八進制就是\000~\177
- 舉個栗子
‘\101’, 十進制爲64*1+8*0+1*1=65,而碼值爲65的字符爲‘A’,所以‘\101’表示字符'A'
十六進制轉義字符
- 形式:\xhh
表示ACSII碼值等於該十六進制數的字符,最短一位\xh,最長兩位\xhh,超出部分同樣不算,十六進制的標準前綴0x或0X不用再額外加上,h的數值爲0~9,a~f;
- 那麼\xhh 的範圍就是\x00~\x7f
- 舉個栗子
'\x41',十進制爲16*4+1*1=65,同樣表示字符‘A’