C語言中反斜杠的作用及說明

C語言中反斜杠的作用

反斜杠起到換行作用,用於宏定義和字符串換行。其中宏定義中使用居多。

如果一行代碼有很多元素,導致太長影響閱讀,可以通過在結尾加\的方式,實現換行,編譯時會忽略\及其後的換行符,當做一行處理。

1.在宏定義中

要換行必須使用 \ 結尾。

#define CHECK_ACTION_RETURN(expr) \
    if (!expr) { \
        printf(":failed(%d)\n", ret); \
        return ret; \
                } else { \
        printf(":ok\n"); \
                }

2.在字符串常量中

可以使用 \ 結尾。

"this \
is \
for \
testing"

和”this is for testing”是相同的,但是對於字符串寫成

"this "
"is "
"for "
"testing"

效果是相同的,而且更美觀。

3.另外在普通的語句中

也可以通過 \ 實現換行,不過這時沒有 \ 也是一樣的效果。

比如

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);

是沒有區別的,所以這時一般不會使用\。

斜杠,雙斜杠,反斜杠與雙反斜杠

1. 斜杠

"/"是URL地址中用到的分隔符,斜杠/在Linux等其他操作系統中使用

web應用最早部署在Unix系統,所以目前使用的網絡地址也是斜杠作為分隔符,可自行通過瀏覽器地址欄觀察。

並且在linux系統中的文件路徑也是用“/”分隔:比如在URL https://mp.csdn.net/mp_blog/creation/editor中,斜杠"/"起著分隔主機名、路徑、以及文件名的作用,比如linux常見的路徑名: /etc/ssh/sshd_config

2. 雙斜杠

“//”用在網絡域名訪問中,是協議和主機名或IP地址之間的分隔符,以雙斜杠//開頭的URL是依賴協議的URL表示形式,URL格式:協議://域名或ip/請求文件路徑/文件名。https://mp.csdn.net/mp_blog/creation/editor ,協議為 https,主機名為 blog.csdn.net。

C程序中文件路徑使用雙斜杠//

C語言中存在轉義字符。C:\Program Files是Windows下的路徑,在C文件操作中就要改為使用雙斜杠為C:\Program Files

3. 反斜杠

“\”是Windows系統文件目錄結構使用的分隔符,可常用做轉義字符,此外在一些編程語言中,反斜線可作為一個強制換行符。反斜杠\隻有Windows系統中使用,Windows中斜杠/ 作為DOS命令提示符的參數標志瞭,為瞭不混淆,所以采用 反斜杠\ 作為路徑分隔符。

在windows下我們常用的路徑名 D:\wenjian\cs\blog,就是用反斜杠來分隔目錄文件的。\n \t等轉義字符。

反斜杠在C裡面(以及大部分編程語言)屬於轉義符,也就是其後的字符將有不同意義,比如\n表示回車,再比如在perl裡面$x表示一個變量,而$x就不是變量瞭。至於\就是將後面的\轉義瞭,此時後面的\就不是轉義符瞭,

而是\字符本身,例如:printf(“\n”);打印出來的就是\n,而不是一個回車。

你隻要記住\會將後面的字符轉義即可,,比如printf(“\”);結果是編譯錯誤,因為前面的兩個\是\字符本身,第三個\會去轉義後面的",這樣就會缺少一個引號,造成編譯錯誤。

\轉義引號的地方很多,主要是要在字符串裡包含引號,比如:printf(“hello “world”\n”);

4.雙反斜杠

“\\”在windows裡表示絕對地址的第一項,後面跟IP地址或計算機名,就是需要打開這個IP地址或計算機名對應主機的網絡共享資源。

經常使用的一個場景是在局域網內設置共享文件夾,局域網內的其他電腦要訪問該共享文件夾時可以在地址欄輸入 \\共享文件夾電腦的局域網ip,比如 \\192.168.1.100(設置瞭共享文件夾的電腦的ip,可以在cmd中輸入ifconfig查看)

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: