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

近来研究源码时发现,常常在路径中出现正斜杠“/”和反斜杠“\”,之前就一直不胜其扰,所幸查资料把它一次弄懂,求个明白。在这里做个记录。

我认真搜了一下,发现问这个问题的人还不少,知乎上也有提问的。来看看知乎的回答。

 


 

问题:如何区分符号“/”和“\”的用法?

 

某些回答:

1、Fenng:"记住一件事情,除了在程序中,其它地方几乎不需要用"\",应该就差不多了。

BTW,我最反感的一件事情就是应该用"/"的地方用了"\"。也是用来鉴别一个人是否足够细心的一个依据。"

2、Nevo:""/" 分隔符,"\" 转义字符,好吧,我承认我是程序员。"

3、早起鸟:""/" 英文是forward slash, “\" 是backward slash
形象些比喻的话,“/"是一个人站立着向前倾倒->, 而"\"是一个人站立着向后倾倒。"

4、知乎用户:“在绝大多数地方,用的都是/(slash),包括Mac/Linux,也包括URL。你唯一需要记住的是,Microsoft这个怪鸡在自己的操作系统里面偏要用\(backslash),使得自己与众不同。

根据上面的说法,你很容易记住谁是“正”斜杠,谁是“反”斜杠,这个世界上就只有Microsoft是反的,别人都是“正”的,因为它用的那个叫做 backslash。”


 

看到第4条回答,我心里暗暗点头,说得真的太TM对了!

言归正传,说说具体的区别吧!

以下部分内容为参考http://blog.csdn.net/zlwzlwzlw/article/details/7768313/

Unix使用斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用斜杠/作为分隔符。

Windows由于使用斜杠/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠\作为路径分隔符。所以目前windows系统上的文件浏览器都是用反斜杠\作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用得很少,斜杠和反斜杠在大多数情况下可以互换,没有影响。

我在cmd.exe验证了一下:

 正斜杠:

反斜杠:

 

正斜杠:

反斜杠:

 

的确,现在在cmd中,已经不区分正斜杠和反斜杠了!

知道这个背景后,可以总结一下结论:

(1)浏览器地址栏网址使用 正斜杠/;

(2)windows文件浏览器上使用 反斜杠\;

(3)出现在htm url()属性中的路径,指定的路径是网络路径,所以必须使用 正斜杠/;

1 <div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; padding:10px 10px 10px 10px"></div>
2 // 如果url后面用反斜杠,就不会显示任何背景

(4)出现在普通字符串的路径,如果代表的是windows文件路径,则使用 正斜杠/和 反斜杠\是一样的;如果代表的是网络文件路径,则必须使用 正斜杠/;

1 <img src=".\Image/Control/ding.jpg" /> // 本地文件路径,/ 和 \ 是等效的
2 <img src="./Image\Control\cai.jpg" />
3 <img src="http://hiphotos.baidu.com/yuhua522/pic/item/01a949c67e1023549c163df2.jpg" /> // 网络文件路径,一定要使用 斜杆/

 

另外在编程中,常用反斜杠\加字符表示转义字符,如\0表示“空字符”\r表示“回车”,\n表示“换行”等。

而"\\"则表示反斜杠\的转义字符,在编程中常用于表示反斜杠\不是普通的字符,而是路径的分隔符。如用一个字符串存储保存文件的路径时,路径为F:\caffe\Temp\image.jpg;则用字符串存储时,应该写为str=F:\\caffe\\Temp\\image.jpg;

因为若不这样表示,则反斜杠\将会当作普通字符,而非路径的分隔符。

 

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将Java对象转换为JSON字符串

当学习如何编写基于Java的软件时&#xff0c;开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。尽管您可能是Java向导&#xff0c;但JSON是另一种动物。 无论如何&#xff0c;这篇博客文章解释了完成工作所需的一切。 Java对象是数据和处理可用…

pat 乙级 1017 A除以B(C++)

题目 本题要求计算 A/B&#xff0c;其中 A 是不超过 1000 位的正整数&#xff0c;B 是 1 位正整数。你需要输出商数 Q 和余数 R&#xff0c;使得 ABQR 成立。 输入格式&#xff1a; 输入在一行中依次给出 A 和 B&#xff0c;中间以 1 空格分隔。 输出格式&#xff1a; 在一…

C++中 Vector使用方法

1. 一维vector&#xff1a; 1.1 vector 说明 vector是向量类型&#xff0c;可以容纳许多类型的数据&#xff0c;因此也被称为容器 (可以理解为动态数组&#xff0c;是封装好了的类&#xff09; 进行vector操作前应添加头文件#include <vector>1.2 vector初始化&#xf…

pat 乙级 1019 数字黑洞(C++)

题目 给定任一个各位数字不完全相同的 4 位正整数&#xff0c;如果我们先把 4 个数字按非递增排序&#xff0c;再按非递减排序&#xff0c;然后用第 1 个数字减第 2 个数字&#xff0c;将得到一个新的数字。一直重复这样做&#xff0c;我们很快会停在有“数字黑洞”之称的 617…

moxy json介绍_使用MOXy 2.5.1快速且有点脏的JSON模式生成

moxy json介绍因此&#xff0c;这些天我正在为即将推出的Oracle云服务开发新的REST API&#xff0c;因此我需要做的事情之一就是能够为模型中的bean自动生成JSON模式。 我正在使用MOXy从POJO生成JSON&#xff0c;从EclipseLink 2.5.1版本开始&#xff0c;它现在具有从bean模型生…

C++迭代器(Iterator)详解

迭代器&#xff08;Iterator&#xff09;的介绍 背景&#xff1a; 指针可以用来遍历存储空间连续的数据结构&#xff0c;但是对于存储空间费连续的&#xff0c;就需要寻找一个行为类似指针的类&#xff0c;来对非数组的数据结构进行遍历。定义&#xff1a;迭代器是一种检查容器…

用键盘怎么直接打出小于等于和大于等于

≤&#xff1a;按住Alt&#xff0c;然后再按数字键盘41436≥&#xff1a;按住Alt&#xff0c;然后再按数字键盘41437

Java中的责任链设计模式

在本教程中&#xff0c;我们将学习如何在Java中实现责任链模式。 “责任链”设计模式涉及到拥有一系列负责处理请求的对象链。 当客户端发送请求时&#xff0c;第一个处理程序将尝试处理该请求。 如果可以处理&#xff0c;则请求处理在此结束。 但是&#xff0c;如果处理程序无…

C++ vector 遍历修改汇总

通过迭代器、下标操作符、范围for三种方式遍历vector内部元素以及不同遍历方式修改元素。 #include<iostream> #include<vector> using namespace std; int main() {vector<int> ivec;for(int i 0; i < 10; i)ivec.push_back(i);//遍历vector元素//1: 利…

C++11 for区间遍历:vector几种遍历方式

近来&#xff0c;基本上所有现代编程语言都有一种对一个区间写for循环的便捷方式。最终&#xff0c;C也有了相同的概念&#xff1b;你可以给循环提供一个容器&#xff0c;它帮你迭代。 example: #include <iostream> #include <vector> #include <map> usi…

指针基础及实例

指针基础 指针&#xff08;变量&#xff09;是C/C支持的一种变量。指针变量的值是一个地址&#xff0c;该地址是一个16进制的数。指针变量指向该地址所对应的变量。 指针声明 //*号表示指针变量。**号表示二级指针&#xff08;指向指针的指针&#xff09;&#xff0c;只有由它…

硒测试可实现有效的测试自动化

尽管移动应用程序的市场份额有大幅增长&#xff0c;但网络应用程序仍然以大量的用户群为主导。 在部署之前&#xff0c;企业正在快速关注Web应用程序的质量。 这是测试发挥重要作用的地方。 与某些可以自动化的功能测试不同&#xff0c;UI测试仍然主要是手动过程。 但是将测试自…

C++ map用法总结(整理)

1&#xff0c;map简介 map是STL的一个关联容器&#xff0c;它提供一对一的hash。 第一个可以称为关键字(key)&#xff0c;每个关键字只能在map中出现一次&#xff1b;第二个可能称为该关键字的值(value)&#xff1b; map以模板(泛型)方式实现&#xff0c;可以存储任意类型的…

InterruptedException和中断线程的解释

如果没有将InterruptedException检查为异常&#xff0c;则可能甚至没人会注意到它–实际上&#xff0c;这些年来可以防止出现几个错误。 但是由于必须对其进行处理&#xff0c;因此许多人不正确或不加考虑地处理它。 让我们以一个线程的简单示例为例&#xff0c;该线程定期进行…

pat 乙级 1020 月饼(C++实现)

题目 月饼是中国人在中秋佳节时吃的一种传统食品&#xff0c;不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量&#xff0c;请你计算可以获得的最大收益是多少。 注意&#xff1a;销售时允许取出一部分库存。样例给出的情形是这样的&…

Python的from和import用法

import使一个变量名引用整个模块对象&#xff0c;因此必须通过模块名称来得到该模块的属性,比如我们导入一个数学计算的模块 math&#xff1a; import mathprint math.pi #导出圆周率的值>>>3.14159265359我们导入math模块&#xff0c;在python模块学习中我们会知道&a…

带有Spring Cloud Config和JHipster的Java微服务

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 如今&#xff0c;使用Java和Spring Boot开发微服务架构非常流行。 它绝对是Java生态系统中最…

pat 乙级 1026 程序运行时间(C++)

题目 要获得一个 C 语言程序的运行时间&#xff0c;常用的方法是调用头文件 time.h&#xff0c;其中提供了 clock() 函数&#xff0c;可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick&#xff0c;即“时钟打点”。同时还有一个常数 CLK_TC…

什么是命名空间 为什么C++需要使用命名空间

引言&#xff1a; 问题&#xff1a;学习过C&#xff0c;然后再学c的人可能会这么问&#xff0c;我#include<iostream>之后&#xff0c;不就是把头文件拉进来了吗&#xff0c;而cin cout等函数不就是iostream.h里面的函数吗&#xff0c;我使用cin cout时&#xff0c;编译器…

pat 乙级 1023 组个最小数(C++)

题目 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字&#xff0c;但必须全部使用。目标是使得最后得到的数尽可能小&#xff08;注意 0 不能做首位&#xff09;。例如&#xff1a;给定两个 0&#xff0c;两个 1&#xff0c;三个 5&#xff0c;一个 8&#xff0c;我们得…