-
Java/C++学习笔记-转义字符
转义字符: \\
ACSII码值:092
意义:代表一个反斜杆 ' \ '
转义字符: \"
ACSII码值:034
意义:表示一个双引号字符 ' " '
转义字符: \'
ASCII码值:039
意义:表示一个单引号字符 ' ' '
共同点:虽然字符由多个基础字符组合而成,但是在编译器中当成整一个字符
存在的必要性:举个栗子吧,当我们用C++输出一带有双引号字符串,e:cout<<" I love "you" forever "<<endl; 编译时无法通过的,因为编译器无法确定字符串是哪里开始和结束 ," I love "这样?? 还是 "you"??或者" forever "(字符串必须在双引号内)所以如果要输出 I love "you" forever 必须对字符串内存在的双引号进行区分,将字符串内双引号表示成 \",就可以实现在字符串内输出字符串
#include<iostream>
using namespace std;
int main()
{
cout << "i love \"you\" forever " << endl;
return 0;
}
//running result:i love "you" forever
再举一个栗子:有一个字符串”\\\”A100\”\\”,用strlen计算的结果是多少?
首先字符串包裹的双引号去掉
然后 \\ \" 分别看成单个字符
所以: 1[\\] 2[\"] 3[A] 4[1] 5[0] 6[0] 7[\"] 8[\\] 字符串长度为8
注意:脑洞别太大,我自己踩的坑:既然 \\表示单个字符\? 那 \\"等价于\" ??? , 错!!!
某个字符具有对应转义字符,说明该字符具有特殊功能,通过转义字符进行区分可以使代码不具二义性。
总之一句话:若想在编程中体现特殊字符的特殊功能,那么采用原字符,如果只想输出,进行ASCII比较等,采用转义字符
讨论仅限于 [ \\ ][\"][\'] ,对于 \t ,\a 不适用