由于最近好几次碰到反斜杠,不明白是什么意思,后来查了下,原来用的较多的是作为强制换行符,衔接上下两行的意思。有时候一个语句太长,一行写不下,或者显得不美观,为了便于阅读,可以将较长的语句拆分成两行甚至多行,除了最后一行之外,在每一个分行后面加一个反斜杠“\”,这样编译的时候,系统会自动将这几个分行读成一个语句处理。比如:

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 ,这样才能正确读取你要的文件。

总结一下,目前个人了解的反斜杠的作用是两种:

1 是作为转义字符,将进行的操作是紧跟其后的字符的操作。

2 与回车键组合进行强制换行。在要强制换行的地方输入反斜杠然后回车,系统编译的时候会自动将反斜杠下面的一行与前面的一行解释成一个语句。

另:在命令行中使用反斜杠见:http://msdn.microsoft.com/en-us/library/aa243471.aspx

[cpp] view plaincopy
  1. 今天看了一下vc自带的一些头文件的内容,看到很多语句后面都有反斜杠,在印象中就只有//是表示注释功能的,但是反斜杠也只是一个转义字符来的。但是语句后面再加一个反斜杠,还真没见过!查了一下,原来是这样的:

①转义字符;如:\n表示回车+换行等。

②续行符;这个需要注意一下,在一般的语句中,这个有和没有事没关系的,编译器编译的时候会自动把两句连在一起(注意是把第二行原原本本从开始第一个字符(包括空格)连接到前一行上面);看下面例子:

[html] view plaincopy
  1. int i = 1;
  2. cout<<i++
  3. <<i++<<i++<<endl;

这个是没错的。

但是:

[cpp] view plaincopy
  1. int i = 1;
  2. cout<
  3. <i++<<i++<<i++<<endl;

这个会发生错误。

然后这个:

[cpp] view plaincopy
  1. int i = 1;
  2. cout<\
  3. <i++<<i++<<i++<<endl;

但是这个也是有问题的。

然后这个:

[cpp] view plaincopy
  1. int i = 1;
  2. cout<\
  3. <i++<<i++<<i++<<endl;

这个是没有问题的!

到这里,明白了吧!

另外还有一个需要注意的地方,上面的续行符是用在某个语句比较长的时候,用来续行的,这样会好看点。还有一作用就是——系统规定,宏定义的时候,代替的语句很长或者是个语句块甚至函数的时候,就需要用到这个反斜杠了!看下面:

参考百度知道
这玩意儿有个正式的名称叫做续行符,在普通代码行后面加不加都一样(VC是自动判断续行的),但是在宏定义里面就特别有用,因为宏定义规定必须用一行完成:
#define SomeFun(x, a, b) if(x)x=a+b;else x=a-b;
这一行定义是没有问题的,但是这样代码很不容易被理解,以后维护起来麻烦,如果写成:
#define SomeFun(x, a, b)if (x)x = a + b;elsex = a - b;
这样理解是好理解了,但是编译器会出错,因为它会认为#define SomeFun(x, a, b)是完整的一行,if (x)以及后面的语句与#define SomeFun(x, a, b)没有关系.这时候我们就必须使用这样的写法:
#define SomeFun(x, a, b)\if (x)\x = a + b;\else\x = a - b;
注意:最后一行不要加续行符啊.VC的预处理器在编译之前会自动将\与换行回车去掉,这样一来既不影响阅读,又不影响逻辑,皆大欢喜

反斜杠在C/C++中的作用相关推荐

  1. python中多行语句可以用反斜杠来实现_Python中的多行语句可以使用反斜杠来实现...

    Python中的多行语句可以使用反斜杠来实现 答:错 好氧堆肥化是指在有氧存在的状态下,好氧微生物对废物中的有机物进行分解转化的过程,最终的产物主要是 答:CO2 H2O 腐殖质 旅游市场竞争的主要对 ...

  2. net mysql反斜杠怎么入库_MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义

    问题描述: mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容 ...

  3. python中的多行语句可以使用反斜杠来实现_Python中的多行语句可以使用反斜杠来表示。...

    [资料题]4 . A 木业制造有限责任公司(以下简称 A 公司)是增值税一般纳税人,从事实木地板的生产.销售,同时从事木质工艺品.筷子等的生产经营.本年 7 月 A 公司发生下列业务: ( 1 )购进 ...

  4. java中的斜杠和反斜杠,老生常谈java路径中的反斜杠和斜杠的区别

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

  5. c语言反斜杠,掌握C++编程中反斜杠续行符的使用方法

    1) 用在宏定义中: #define CV_ARE_SIZES_EQ(mat1, mat2) \ ((mat1)->rows == (mat2)->rows && (mat ...

  6. python转义字符r 列表_通过在列表前面添加反斜杠来转义列表中的保留字符 - python...

    reserved_chars = "? & | ! { } [ ] ( ) ^ ~ * : \ " ' + -" list_vals = ['gold-bear@ ...

  7. Java 正则表达式中为什么反斜杠“\“需要用“\\\\”表示

    正则表达式语法 在其他语言中,\\(两个斜杠) 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义. 在 Java 中,\\ (两个斜杠)表示:我要插入一个正则表达式 ...

  8. python中反斜杠_Python中的正斜杠/与反斜杠\

    知识点: 1. "/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠 2. 对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠\. ...

  9. Java学习笔记2:使用replaceAll()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)

    在编程过程中,需要将一个字符串中的反斜杠(\)全部替换成(\\),很简单的操作但是很容易报错. 比如:String filePath  =  "D:\daxiang\test\daxiang ...

最新文章

  1. oracle中 游标实例
  2. REST,Web 服务,REST-ful 服务
  3. Spring Boot (一)Spring Boot 概述
  4. mysql表定义外键语法_mysql设置外键的语法怎么写?
  5. Java学习笔记---接口
  6. 您必须学习Java 8的函数式编程吗?
  7. Linux64位steam,这下没得玩了! Steam无奈抛弃Linux用户
  8. Java instanceof用法
  9. 深入浅出4G标准 LTE FDD和LTE TDD
  10. Unity笔记之切换鼠标图标样式、PSD格式文件导入Unity
  11. 关于ISO26262功能安全管理的理解
  12. 苹果笔记本接移动硬盘怎么使用
  13. ES关键字查询-特殊符号
  14. Wise Duplicate Finder(重复文件查找工具)v1.2.9.40中文免费版
  15. 说一说你的职业规划是怎样的呢?说说未来一年、三年、五年的职业规划
  16. NKOJ3685 8数
  17. 【蓝牙模块】三款常用的基础蓝牙模块,HC05,JDY-31,CC2541介绍与测试说明
  18. flipflop和latch以及register的区别
  19. 【web前端】html+js实现流程进度展示条
  20. 武田宣布多项细胞疗法合作,以推进公司的新型免疫肿瘤学阵容

热门文章

  1. CodeForces - 589A
  2. tomcat运行出现问题(Starting Tomcat v8.0 Server at localhost' has encountered a problem.)
  3. Tomcat下载与安装
  4. linux中使用ntpdate命令进行时间更新时出现the NTP socket is in use, exiting
  5. 第六章 ---- 面向对象(三)
  6. php导入excel文件 视频,PHP导入Excel文件
  7. html5拖放原理,HTML5 拖放实现
  8. 大众eagit_试驾大众全新高尔夫GTI
  9. python查看微信撤回消息_python如何查看微信消息撤回
  10. @Component注解的用法