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查看)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。