printf("%d %d %d",'\8','\10','\63');
和ASCII碼什麼關系嗎?
新手,不太明白。
樓上解讀有誤啊
首先 \ 表示的是字符轉義
所有的字符轉義都是有規定的
\a 響鈴(BEL) 007
\b 退格(BS) ,將當前位置移到前一列 008
\f 換頁(FF),將當前位置移到下頁開頭 012
\n 換行(LF) ,將當前位置移到下一行開頭 010
\r 回車(CR) ,將當前位置移到本行開頭 013
\t 水平制表(HT) (跳到下一個TAB位置)009
\v 垂直制表(VT) 011
\ 代表一個反斜線字符''\' 092
\' 代表一個單引號(撇號)字符 039
\" 代表一個雙引號字符 034
\0 空字符(NULL) 000
\ddd 1到3位八進制數所代表的任意字符 三位八進制
\xhh 1到2位十六進制所代表的任意字符 二位十六進制
'\8' 其實系統認為它是一個八進制的數值表示的字符 可是8並不是八進制可以表示的字符
所以用gcc編譯的時候會報warning
warning: unknown escape sequence: '\8' [enabled by default]
但是編譯器會自動優化為字符'8' ,所有用%d還是可以輸出字符'8'在ascii碼的順序號56