C語(yǔ)言中反斜杠的作用及說(shuō)明
C語(yǔ)言中反斜杠的作用
反斜杠起到換行作用,用于宏定義和字符串換行。其中宏定義中使用居多。
如果一行代碼有很多元素,導(dǎo)致太長(zhǎng)影響閱讀,可以通過(guò)在結(jié)尾加\的方式,實(shí)現(xiàn)換行,編譯時(shí)會(huì)忽略\及其后的換行符,當(dāng)做一行處理。
1.在宏定義中
要換行必須使用 \ 結(jié)尾。
#define CHECK_ACTION_RETURN(expr) \
? ? if (!expr) { \
? ? ? ? printf(":failed(%d)\n", ret); \
? ? ? ? return ret; \
? ? ? ? ? ? ? ? } else { \
? ? ? ? printf(":ok\n"); \
? ? ? ? ? ? ? ? }2.在字符串常量中
可以使用 \ 結(jié)尾。
"this \ is \ for \ testing"
和”this is for testing”是相同的,但是對(duì)于字符串寫(xiě)成
"this " "is " "for " "testing"
效果是相同的,而且更美觀。
3.另外在普通的語(yǔ)句中
也可以通過(guò) \ 實(shí)現(xiàn)換行,不過(guò)這時(shí)沒(méi)有 \ 也是一樣的效果。
比如
printf("this is for test %d %d %d\n",\
test_output_a,\
test_output_b,\
test_output_c);和
printf("this is for test %d %d %d\n",
test_output_a,
test_output_b,
test_output_c);是沒(méi)有區(qū)別的,所以這時(shí)一般不會(huì)使用\。
斜杠,雙斜杠,反斜杠與雙反斜杠
1. 斜杠
"/"是URL地址中用到的分隔符,斜杠/在Linux等其他操作系統(tǒng)中使用
web應(yīng)用最早部署在Unix系統(tǒng),所以目前使用的網(wǎng)絡(luò)地址也是斜杠作為分隔符,可自行通過(guò)瀏覽器地址欄觀察。
并且在linux系統(tǒng)中的文件路徑也是用“/”分隔:比如在URL https://mp.csdn.net/mp_blog/creation/editor中,斜杠"/"起著分隔主機(jī)名、路徑、以及文件名的作用,比如linux常見(jiàn)的路徑名: /etc/ssh/sshd_config
2. 雙斜杠
“//”用在網(wǎng)絡(luò)域名訪問(wèn)中,是協(xié)議和主機(jī)名或IP地址之間的分隔符,以雙斜杠//開(kāi)頭的URL是依賴協(xié)議的URL表示形式,URL格式:協(xié)議://域名或ip/請(qǐng)求文件路徑/文件名。https://mp.csdn.net/mp_blog/creation/editor ,協(xié)議為 https,主機(jī)名為 blog.csdn.net。
C程序中文件路徑使用雙斜杠//
C語(yǔ)言中存在轉(zhuǎn)義字符。C:\Program Files是Windows下的路徑,在C文件操作中就要改為使用雙斜杠為C:\Program Files
3. 反斜杠
“\”是Windows系統(tǒng)文件目錄結(jié)構(gòu)使用的分隔符,可常用做轉(zhuǎn)義字符,此外在一些編程語(yǔ)言中,反斜線可作為一個(gè)強(qiáng)制換行符。反斜杠\只有Windows系統(tǒng)中使用,Windows中斜杠/ 作為DOS命令提示符的參數(shù)標(biāo)志了,為了不混淆,所以采用 反斜杠\ 作為路徑分隔符。
在windows下我們常用的路徑名 D:\wenjian\cs\blog,就是用反斜杠來(lái)分隔目錄文件的。\n \t等轉(zhuǎn)義字符。
反斜杠在C里面(以及大部分編程語(yǔ)言)屬于轉(zhuǎn)義符,也就是其后的字符將有不同意義,比如\n表示回車,再比如在perl里面$x表示一個(gè)變量,而$x就不是變量了。至于\就是將后面的\轉(zhuǎn)義了,此時(shí)后面的\就不是轉(zhuǎn)義符了,
而是\字符本身,例如:printf(“\n”);打印出來(lái)的就是\n,而不是一個(gè)回車。
你只要記住\會(huì)將后面的字符轉(zhuǎn)義即可,,比如printf(“\”);結(jié)果是編譯錯(cuò)誤,因?yàn)榍懊娴膬蓚€(gè)\是\字符本身,第三個(gè)\會(huì)去轉(zhuǎn)義后面的",這樣就會(huì)缺少一個(gè)引號(hào),造成編譯錯(cuò)誤。
\轉(zhuǎn)義引號(hào)的地方很多,主要是要在字符串里包含引號(hào),比如:printf(“hello “world”\n”);
4.雙反斜杠
“\\”在windows里表示絕對(duì)地址的第一項(xiàng),后面跟IP地址或計(jì)算機(jī)名,就是需要打開(kāi)這個(gè)IP地址或計(jì)算機(jī)名對(duì)應(yīng)主機(jī)的網(wǎng)絡(luò)共享資源。
經(jīng)常使用的一個(gè)場(chǎng)景是在局域網(wǎng)內(nèi)設(shè)置共享文件夾,局域網(wǎng)內(nèi)的其他電腦要訪問(wèn)該共享文件夾時(shí)可以在地址欄輸入 \\共享文件夾電腦的局域網(wǎng)ip,比如 \\192.168.1.100(設(shè)置了共享文件夾的電腦的ip,可以在cmd中輸入ifconfig查看)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言中大小端問(wèn)題實(shí)例探索解決方法
這篇文章主要介紹了C語(yǔ)言中大小端問(wèn)題實(shí)例,總的來(lái)說(shuō)這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過(guò)程。希望通過(guò)這道題能給你帶來(lái)一種解題優(yōu)化的思路2023-02-02
qt首次連接MYSQL驅(qū)動(dòng)的各種問(wèn)題圖文詳解
通常來(lái)說(shuō),我們對(duì)數(shù)據(jù)庫(kù)的操作更多地在于對(duì)數(shù)據(jù)庫(kù)表的操作,下面這篇文章主要給大家介紹了關(guān)于qt首次連接MYSQL驅(qū)動(dòng)的各種問(wèn)題,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
C語(yǔ)言 詳細(xì)講解數(shù)組參數(shù)與指針參數(shù)
這篇文章主要介紹了C語(yǔ)言中數(shù)組參數(shù)與指針參數(shù)的分析,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C++結(jié)構(gòu)體struct和類class區(qū)別詳解
struct和class有什么區(qū)別?最本質(zhì)的一個(gè)區(qū)別就是默認(rèn)的訪問(wèn)控制:默認(rèn)的繼承訪問(wèn)權(quán)限,struct是public的,class是private的。2017-11-11

