路径中使用斜杠/和反斜杠\的区别到底是什么。
Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。
Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符。所以目前windows系统上的文件浏览器都是用 反斜杠\ 作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响。
知道这个背景后,可以总结一下结论:
(1)浏览器地址栏网址使用 斜杆/ ;
(2)windows文件浏览器上使用 反斜杠\ ;
(3)出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/ ;
(4)出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/ 和 反斜杠\ 是一样的;如果代表的是网络文件路径,则必须使用 斜杆/ ;
斜杆/ 和 反斜杠\ 的区别基本上就是这些了,下面再讨论一下相对路径和绝对路径。
./SRC/ 这样写表示,当前目录中的SRC文件夹;
../SRC/ 这样写表示,当前目录的上一层目录中SRC文件夹;
/SRC/ 这样写表示,项目根目录(可以只磁盘根目录,也可以指项目根目录,具体根据实际情况而定)
在Windows系统中,正斜杠/表示除法,用来进行整除运算;反斜杠\用来表示目录;
在Unix系统中,/表示目录;\表示跳脱字符将特殊字符变成一般字符(如enter,$,空格等);
反斜杠\,用的较多的是作为强制换行符,衔接上下两行的意思。有时候一个语句太长,一行写不下,或者显得不美观,为了便于阅读,可以将较长的语句拆分成两行甚至多行,除了最后一行之外,在每一个分行后面加一个反斜杠“\”,这样编译的时候,系统会自动将这几个分行读成一个语句处理。比如:
1) 用在宏定义中:
#define CV_ARE_SIZES_EQ(mat1, mat2) \
((mat1)->rows == (mat2)->rows&& (mat1)->cols ==(mat2)->cols)
2) 用在printf中,有时候printf中语句太长,需要切分,则需用到反斜杠;
3) 用“//”只能注释当前行的语句,想要将下一行一起注释掉,则可以在该行最后加上反斜杠。
另外,反斜杠除了强制换行的作用之外,还有转义符的意思。如:“\n”表示换行符,"\t""\b"等,此时反斜杠表示转义,执行反斜杠后面的符号表示的意思。
但若要取反斜杠的本意,则需要在反斜杠之前再加一个反斜杠才能正确表示。比如我要在程序中读取F:\OpenCV2.0\vs2008\videos\videos1.avi,,我不能直接将这样表示,而应该在每一个反斜杠前面再加一个反斜杠,表示为:F:\\OpenCV2.0\\vs2008\\videos\\videos1.avi ,这样才能正确读取你要的文件。
另外:
\\表示本地资源,比如\\192.168.0.100\C
//表示网络资源,比如 http://www.163.com