? 轉(zhuǎn)義字符(Escape character),所有的ASCII碼都可以用“\”加數(shù)字(一般是8進(jìn)制數(shù)字)來表示。而C中定義了一些字母前加""來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱為轉(zhuǎn)義字符,因為后面的字符,都不是它本來的ASCII字符意思了。
創(chuàng)新互聯(lián)建站專注于蘆山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供蘆山營銷型網(wǎng)站建設(shè),蘆山網(wǎng)站制作、蘆山網(wǎng)頁設(shè)計、蘆山網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造蘆山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供蘆山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。常見轉(zhuǎn)義字符轉(zhuǎn)義字符 | 釋義 |
---|---|
? | 在書寫連續(xù)多個問號時使用,防止他們被解析成三字母詞 |
\` | 用于表示字符常量` |
\" | 用于表示一個字符產(chǎn)內(nèi)部的雙引號 |
\\ | 用于表示一個反斜杠,防止它被解釋為一個轉(zhuǎn)義序列符 |
\a | 警告字符,蜂鳴 |
\b | 退格符 |
\f | 進(jìn)紙符 |
換行 | |
\r | 回車 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3個八進(jìn)制的數(shù)字。如:\130X |
\xdd | dd表示2個十六進(jìn)制數(shù)字。如:\x30 0 |
在某些編譯器下 ,會將 “ ??) ” 解析成 三字母詞 “ ] ” ,
所以在打印 “ ??) ”時,為了防止被解析成三字母詞,在它前面加 " \",改成 ” ??) “ 。
像這樣打印單引號時會造成編譯器無法編譯:
printf("%c",''');
在 ’ 前面加 \ 將它轉(zhuǎn)義就可以打印出來了,
像這樣
printf( "%c",' \' ');
與 \` 用法相同,這里就不再贅述了。
用來表示一個反斜杠,防止它被解釋為一個轉(zhuǎn)義序列符,
當(dāng)你想打印一個文件路徑時,如果直接這樣寫:
printf("c:\test\test.c");
那打印出來的結(jié)果將是這樣的:
這是因為 \t 會被編譯器解析為水平制表符,
正確的寫法是在 \ 的前面加 \ 進(jìn)行轉(zhuǎn)義, 防止被解析為 \t,
printf("c:\\test\\test.c");
打印出來的結(jié)果是這樣的:
在打印 \a 時會觸發(fā)電腦上的蜂鳴器.。
ddd表示1-3個八進(jìn)制的數(shù)字。將ddd三個數(shù)字轉(zhuǎn)換成十進(jìn)制,十進(jìn)制數(shù)對應(yīng)的ASCAII就是結(jié)果。
猜一猜下面的代碼打印出的是什么?
printf("%c",'\130');
?為什么會是X?
因為輸出結(jié)果為字符型,將八進(jìn)制數(shù)字130轉(zhuǎn)換為十進(jìn)制為88,然后輸出在[ASCII表](ASCII_百度百科 (baidu.com))中對應(yīng)的字符X。
如果輸出類型為整型,打印的結(jié)果就是八進(jìn)制130轉(zhuǎn)換為十進(jìn)制的結(jié)果
像這樣:
printf("%d",'\130');
? 其實(shí) \ddd 最多只支持三位數(shù)字,并且三位數(shù)字也不是任意的(每個數(shù)字不能大于8,一旦大于8它就不是八進(jìn)制數(shù)了),一旦大于等于八進(jìn)制數(shù) '/400 '(十進(jìn)制256=8進(jìn)制400)就超過了ascall碼的范圍,編譯器就會報錯。另外大于三位,或者遇到非八進(jìn)制數(shù)字時則轉(zhuǎn)換結(jié)束,直接取末尾數(shù)字。
同樣首先要了解的是dd表示2個十六進(jìn)制數(shù),
猜一猜下面的代碼打印出的是什么?
printf("%c",'\x30');
為什么是0呢?
因為輸出結(jié)果為字符型,將十六進(jìn)制數(shù)字30轉(zhuǎn)換為十進(jìn)制為48,然后輸出在ASCII表中對應(yīng)的字符 0。
同樣的,如果輸出類型為整型,打印的結(jié)果就是十六進(jìn)制30轉(zhuǎn)換為十進(jìn)制的結(jié)果。
printf("%d",'\x30');
1. 猜猜下面的代碼打印的數(shù)字是多少?
printf("%d",strlen("qwer t"));
答案是:
為什么是6呢?
所以打印的結(jié)果就是6了。
2. 再猜猜下面的代碼打印的數(shù)字是多少?
printf("%d",strlen("c:\test\628\test.c"));
答案是:
為什么是14呢?
因為這個字符串中有轉(zhuǎn)義字符存在。
紅色方框里的部分都會被轉(zhuǎn)義成一個字符,
這里要注意這里的628不是八進(jìn)制數(shù)字,62是八進(jìn)制數(shù)字
八進(jìn)制數(shù)字每個數(shù)字大不能大于7,大于7就要進(jìn)位了。
所以一共有14個字符。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:C語言——轉(zhuǎn)義字符-創(chuàng)新互聯(lián)
鏈接地址:http://m.newbst.com/article14/dchhge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、Google、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容