企业公司网站 北京,杭州设计网站的公司哪家好,深圳网站建设 套餐,网站需求文档范例从表中可以看出#xff0c;在C语言中有三种转义字符#xff0c;它们是#xff1a;一般转义字符、八进制转义字符和十六进制转义字符。
所有的转义字符只代表一个字符
1. 一般转义字符
这种转义字符#xff0c;虽然在形式上由两个字符组成#xff0c;但只代表一个字符。…从表中可以看出在C语言中有三种转义字符它们是一般转义字符、八进制转义字符和十六进制转义字符。
所有的转义字符只代表一个字符
1. 一般转义字符
这种转义字符虽然在形式上由两个字符组成但只代表一个字符。常用的一般转义字符为
\a \n \t \v \b \r \f \\ \’ \
细心的读者可能已经发现转义字符\\代表的反斜杠\、转义字符’\’’代表的字符和转义字符\代表的字符其本身就是可显示字符为什么还要对它转义呢?
这是因为它们的原有的字符形式已作它用其中单引号用作区分字符常量的括号双引号用作区分字符串(下面将要介绍字符串)的括号而反斜杠本身已用来表示转义字符的开头因此必须对它们用转义字符重新声明。
2. 八进制转义字符被看作是一个八进制整数且是有符号整数-128~127补码存储若超过8位如\601\201打印整数为-127要么发生截断要么编译错误跟编译器有关
它是由反斜杠\和随后的13个八进制数字构成的字符序列。例如\60、\101、\141分别表示字符0、A和a。因为字符0、A和a的ASCII码的八进制值分别为60、101和141。
字符集中的所有字符都可以用八进制转义字符表示。
如果你愿意可以在八进制数字前面加上一个0来表示八进制转移字符。
3. 十六进制转义字符
它是由反斜杠\和字母x(或X)及随后的12个十六进制数字构成的字符序列。例如\x30、\x41、\X61分别表示字符0、A和a。因为字符0、A和a的ASCII码的十六进制值分别为0x30、0x41和0x61。
可见字符集中的所有字符都可以用十六进制转义字符表示。
由上可知使用八进制转义字符和十六进制转义字符不仅可以表示控制字符而且也可以表示可显示字符。但由于不同的计算机系统上采用的字符集可能不同因此为了能使所编写的程序可以方便地移植到其他的计算机系统上运行程序中应少用这种形式的转义字符。 使用转义字符时需要注意以下问题
1)转义字符中只能使用小写字母每个转义字符只能看作一个字符。
2)\v垂直制表和\f换页符对屏幕没有任何影响但会影响打印机执行响应操作。
3)在C程序中使用不可打印字符时通常用转义字符表示。
4)转义字符’\0’表示空字符NULL它的值是0。而字符0的ASCII码值是48。因此空字符’\0’不是字符0。另外空字符不等于空格字符空格字符的ASCII码值为32而不是0。编程序时读者应当区别清楚。
5) 如果反斜线之后的字符和它不构成转义字符则’\’不起转义作用将被忽略。
例如
printf(“a\Nbc\nDEF\n”);
输出
aNbc
DEF
6)转义字符也可以出现在字符串中但只作为一个字符看待。
例 求下面字符串的长度
“\026[12,m” 长度为6 \\ \026为一个字符 再加5个字符
“\0mn” 长度为0。想想为什么不是2
cout strlen(\0mn) endl; //0 //\0被认为是字符串结束标志所以为0
cout strlen(\026[12,m) endl; //\026中026是八进制写法
cout sizeof(\0mn) endl; //4 \0代表0
cout sizeof(\026[12,m) endl; //7
参考自http://blog.sina.com.cn/s/blog_686188ef0100ldb3.html