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查看)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(C语言中反斜杠的作用及说明)