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