正斜杠(/)和反斜杠(\)的区别

正斜杠,符号是"/"; 反斜杠,符号是"\"。

正斜杠/表示除法,分割。

在unix系统中,正斜杠/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。

在windows系统中,正斜杠/通常用来分割命令行参数,用\表示目录。

windows本地路径用\,如C:\windows\system32。

网络一般用/,如http://www.xxx.com/

UNIX操作系统设计了这种路径分割法,它使用斜杠: /。由于网络是首先应用在UNIX计算机之间的,至今为止,一半以上的网络服务器仍是使用UNIX操作系统的,所以网址也沿用了斜杠作路径分隔符。

微软在开发DOS2.0的时候,从UNIX中借鉴了这种目录结构,但由于DOS中,斜杠已经用了作为命令行参数的标志了(UNIX中用的是"-"符),所以只得使用反斜杠:\。

到了windows时代,很多时候已经没有命令行参数的干扰,加上网络使用的扩展,现在斜杠和反斜杠可以互换,没有什么影响。

在DOS中,反斜杠后面是路径,也就是文件名,而斜杠后是加DOS参数,比如

C:\windows\system32  ..反斜杠的后面跟着的是文件名

C:\dir/p                       ..正斜杠后面是命令行参数

有时我们会看到这样的路径写法,C:\\windows\\system32 ,也就是用两个反斜杠来来分割路径,这种写法在网络应用或编程中经常遇到,事实上,上面的路径可以用C:/windows/system32 来替代,不会出错。但是如果写成了C:\windows\system32 ,那就可能会出现各种奇怪的错误了。

至于上述问题的出现,要从字符串解析这方面来分析。在C里面,输出字符串时,如果想输出一个换行,就要加上'\n'标志。也就是说,反斜杠\这个符号会把跟在它后面的字符串结合起来转义成其他字符。如果C:\windows\system32 这个路径字符串交给C编译器编译,实际写入内存的字符串并没有包含反斜杠\,甚至紧跟在反斜杠后的字母又被一起转义成了其他字符,再次调用的话会出问题。

字符串解析不仅仅局限于C编译器,Java编译器、一些配置文件的解析、Web服务器等,都会遇到对字符串解析的这个问题,由于传统的windows采用的是单个斜杠的路径分割形式,导致在对文件路径解析的时候可能发生不必要的错误,所以就出现了用双反斜杠\\分割路径的形式。不管解析引擎是否将反斜杠解析成转义字符,最终在内存中得到的都是反斜杠\,结果也就不会出问题了。

由此也可以看出windows或者说DOS在设计初期考虑不够周全,为了和UNIX一些特征区别开来,将UNIX中的正斜杠/分割符路径方式改成了反斜杠\。这样改变导致的一个问题是在早期DOS命令中,正常的文件是不能包含空格的,如果包含了空格,会导致输入这样的文件名时,命令解析无法将其和参数区分开。例如,想要进入"hutaow yuan"这个目录,直接输入"cd hutaow yuan",命令行将会将其解析为进入"hutaow"目录,而后面的"yuan"做参数,这显然不是所期望的。

而在UNIX中,文件名如果包含空格,可以直接在空格前加反斜杠\进行转义,从而很好的和命令参数区别开(参数之间一般使用空格分隔)。还是上面的例子,在Unix中,只要输入"cd hutaow\ yuan"(在yuan前面的空格前加上"\"),命令行会正确的辨认出"hutaow yuan"并进入这个目录。当然,现在Windows的后续版本已经使用其它方法(比如文件名用双引号括住)解决了空格问题。

来源:http://blog.sina.com.cn/s/blog_62dfe3ca0100k1k7.html

http://www.jb51.net/softjc/21108.html

http://www.cnblogs.com/bingcaihuang/archive/2010/12/22/1913399.html

正斜杠(/)和反斜杠(\)的区别相关推荐

  1. 正斜杠( / )和反斜杠( \ )的区别

    反斜杠"\"是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点.所以除了程序设计领域外,任何地方都不应该使用反斜杠. 如何区分正反斜杠 英语:"/" ...

  2. python右斜杠_Python中的左斜杠、右斜杠(正斜杠和反斜杠)

    首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Wi ...

  3. python的百分号和斜杠 除_关于python:如何替换除字母,数字,正斜杠和反斜杠之外的所有字符...

    想要解析文本并仅返回字母,数字,正斜杠和反斜杠,并用''替换所有其他斜杠. 是否可以仅使用一种正则表达式模式,而不是随后需要循环的几种正则表达式模式? 无法获取下面的样式,不能替换正斜杠. line1 ...

  4. 正反斜杠的区别_电脑中的正斜杠(/)与反斜杠(\)的区别

    计算机中的正斜杠(/)与反斜杠(\)的区别 正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS ...

  5. 计算机中正斜杠/与反斜杠\的区别

    正斜杠,符号是"/"; 反斜杠,符号是"". 正斜杠:适用于WINDOWS系统本地路径: 在windows系统中,正斜杠/通常用来分割命令行参数,用\表示目录. ...

  6. 正斜杠 “/” 与反斜杠 “\”辨析

    文章目录 1. 正斜杠 /// 2. 反斜杠 \\backslash\ 3. 正斜杠与反斜杠的区别 4. 注意 注意,/// 为正斜杠(forward slash),而 \\backslash\ 为反 ...

  7. 正反斜杠的区别_正斜杠(/)和反斜杠(\)的区别

    正斜杠,符号是"/"; 反斜杠,符号是"\". 正斜杠/表示除法,分割. 在unix系统中,正斜杠/表示目录.由于web遵循unix命名,所以在网址(URL)中 ...

  8. java 正斜杠与反斜杠之分

    引用说明:有正斜杠与反斜杠之分,正斜杠,一般就叫做斜杠,符号为"/":反斜杠的符号为"\" 引用斜杠(/)在JAVA中没有什么特别的意义,就是代表一个字符'/' ...

  9. 正反斜杠的区别_正斜杠( / )和反斜杠( \ )的区别

    反斜杠"\"是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点.所以除了程序设计领域外,任何地方都不应该使用反斜杠. 如何区分正反斜杠 英语:"/" ...

最新文章

  1. 阿里妈妈:基于动态背包的多场景广告序列投放算法
  2. vue中create 什么触发_vue中eventbus被多次触发(vue中使用eventbus踩过的坑)
  3. 爬取了京东商城上的部分手机评论数据,仅供学习使用
  4. 宝塔php加入环境变量,宝塔面板如何配置 node.js 环境变量
  5. JS删除之前弹出一个带有确认和取消按钮的提示框confirm()
  6. MongoDB与MySQL效率对比
  7. JQuery - Ajax和Tomcat跨域请求问题解决方法!
  8. 在浏览器上运行Qt应用 emscripten-qt
  9. MySQL操作(备份很重要)
  10. 模拟器使用Fiddler代理后,浏览器报错【该网站的安全证书有问题】解决方法
  11. 阿里巴巴Mysql规范
  12. Python-数据处理
  13. canvas 绘制八卦图
  14. word中mathtype公式编辑
  15. Tensorflow 从bin文件中读取数据并
  16. 【NVMe2.0b 12】NVM 容量模型
  17. 【深度】人工智能或重演 2002 互联网泡沫 ! 95% 的企业会倒闭?
  18. 133A 读注意的嘤嘤
  19. 写一个家庭收支明细记账软件1.收支明细2.登记收入 3.登记支出 4.退出
  20. 程序员每天必逛的5个技术网站,你用过几个?

热门文章

  1. Java游戏开发 —— 象棋
  2. win10安装msi文件
  3. 前端基础知识学习之-ShadowDOMLightDOM
  4. jsp制作的个人网站
  5. 软考可以不考初级直接考中级吗?
  6. STM32 PWM的理解
  7. Python图像增强
  8. hive学习之数据插入操作
  9. 学习c语言必备的书籍推荐
  10. 牛客网SQL刷题四-电商场景(某东商城)