正反斜杠的区别_正斜杠(/)和反斜杠(\)的区别
正斜杠,符号是"/"; 反斜杠,符号是"\"。
正斜杠/表示除法,分割。
在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的后续版本已经使用其它方法(比如文件名用双引号括住)解决了空格问题。
正反斜杠的区别_正斜杠(/)和反斜杠(\)的区别相关推荐
- 正反斜杠的区别_正斜杠( / )和反斜杠( \ )的区别
反斜杠"\"是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点.所以除了程序设计领域外,任何地方都不应该使用反斜杠. 如何区分正反斜杠 英语:"/" ...
- js斜杠转成html,JS中处理单个反斜杠(即转义字符的处理)
问题来源:在表单的标签中对输入的字符串进行大写转换.一不小心输入了反斜杠 \ 如下图所示: 输入 chn\ 的时候,在 IE8 下弹出一个js错误.(在实际的项目的表单元素中遇到了,单独这样拿出 ...
- java中的反斜杠报错,老生常谈java路径中的反斜杠和斜杠的区别
JAVA中的斜杠 有正斜杠与反斜杠之分,正斜杠,一般就叫做斜杠,符号为"/":反斜杠的符号为"\". 斜杠(/)在JAVA中没有什么特别的意义,就是代表一个字符 ...
- java正则匹配多个斜杠_正则表达式中两个反斜杠的匹配规则详解
关于正则表达式raw的\匹配规则 这是我在学习中获得到的一个例子,第一表达式中匹配到的是none.于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是n ...
- matlab怎么输入斜杠,如何实现Matlab的mldivide(又称反斜杠运算符“ \”)
对于x = A\b,反斜杠运算符包含许多算法来处理不同种类的输入矩阵.因此,对矩阵A进行诊断,并根据其特性选择执行路径. 以下页面以伪代码描述何时A为完整矩阵: if size(A,1) == siz ...
- c语言中双反斜杠的作用,有关c语言中的反斜杠 '\'
2020-02-02 关键字:反斜杠趣谈 稍微懂点编程的同学,甭管是哪种编程语言,都知道甚至是在代码中用过反斜杠. 反斜杠这东西的最为人所知的作用就是作为"转义字符"以及" ...
- php 目录斜杠 不同服务器,PHP_PHP在引号前面添加反斜杠(PHP去除反斜杠),一般空间商提供的服务器空间 - phpStudy...
PHP在引号前面添加反斜杠(PHP去除反斜杠) 一般空间商提供的服务器空间默认PHP 指令 magic_quotes_gpc是on的,也就是打开的.这时候就可以用stripslashes() 函数删除 ...
- java与ios的区别_好奇?Android与iOS究竟有什么区别?终于知道了!
智能手机系统的发展从如今的百花齐放在到三足立鼎,而发展到了现在则是安卓与ios两家平分天下.谁的系统好用?到底是IOS好呢,还是安卓系统好呢?至今没有一个结果.那么Android与iOS到底有什么区别 ...
- python构造方法与java区别_一张图秒懂Java和Python的区别,你知道吗?
对于程序员的语言千千万JAVA\C\C++\PHP\Python不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java ...
最新文章
- python语法知识_Python基础语法知识汇总(学习党的最爱!)
- 什么是SD-Branch的应用特性?—Vecloud微云
- poj1330Nearest Common Ancestors(LCA小结)
- SpringFramework5.0 @Indexed注解 简单解析
- ABP从入门到精通(1):aspnet-zero-core项目启动及各项目源码说明
- Anaconda安装(ubuntu 14.04.03 LTS 64bit)
- express框架日志处理组件morgan
- C++设计模式之Proxy模式(代理模式)
- caffe(4):mnist实例---手写数字识别
- notepad++下的字体设置
- 十二、流程控制之条件运算符
- 苹果妙控鼠标二代(Magic Mouse 2 )如何连接到 Window 10系统
- MDM页面UI升级介绍
- virtualbox硬件加速_虚拟机安装后必做的3项设置,解决运行卡慢问题,提速十倍!...
- 写了一个微信发红包的代码
- 58同城自动登录。。分享给大家
- paddle 标注_一看就会,手把手教你编程,批量文章标注拼音(附源码)
- Win10桌面一刷新就卡死
- 基于Oracle的SQL优化--学习(九)
- linux CLK时钟驱动
热门文章
- 1252:走迷宫 2021-01-05
- 电竞达人最爱五款真无线蓝牙耳机,听声辨位低延迟TWS蓝牙耳机助你《夺冠》
- 友盟推送_java后台集成和使用
- 自学Java系列 笔记2 高级类特性1
- 读取海康威视摄像头实时显示视频流
- KODI软件的下载与简单使用(开启倍速到1.1,1.2,1.3等等或整数倍速)
- 架构师之路(3)---架构师的职责
- 习题4-9 打印菱形图案(打印图形)
- 转录因子VaERF16和VaMYB306相互作用增强葡萄对灰霉病的抗性
- Latex提取与合并pdf文档(超实用)