ASCII和转义字符的区别与联系

转义字符中的数都是八进制的。




编译器语言c存储在以前学习C语言的过程中,只是对ASCII码和转义字符有一个简单的了解,最近遇到一些关于这方面的问题,深入研究了一下,总结下来,作为以后学习参考。


ASCII字符集 
计算机用数字码来存储字符。ASCII码(美国标准信息交换码)是最常用的编码。 
ASCII码表:http://imgsrc.baidu.com/baike/pic/item/f6428f8f7c5d36e9503d9262.jpg 
转义字符


 


转义序列必须用但括号括起来 
在ASCII码中有些字符是打印不出来的,如一些动作字符,这些字符叫做“非打印字符”,C语言为非打印字符提供了另外一种表示方式。


 


非打印字符只是ASCII的一个子集
转义字符       对应ASCII码十进制 


  /a 响铃(BEL)   007


  /b 退格(BS)     008


  /f 换页(FF)      012


  /n 换行(LF)     010


  /r 回车(CR)     013


  /t 水平制表(HT) 009


  /v 垂直制表(VT) 011


  // 反斜杠          092


  /? 问号字符      063


  /' 单引号字符    039


  /" 双引号字符   034


所有的ASCII码都可以通过转义方式表示出来 
char test='A'; (编译器将其转换为相应十进制编码值,即65) 
char test='/101';(对应的是A的八进制表示方式,需要注意的是:/ 后最多只能是三位,若写成'/0101 则出错,但是若编码为/007,则可以写成/07或者是/7') 
char test='/0x41';(对应的是A的十六进制表示方式) 
不使用转义方式表示 
char test=65; 
char test=0101; (注:其中前面的0表示为八进制表示,若没有0,表示的是e) 
char test=0x41; 
对于转义字符,除了上面的两种表示方式以外,还有第三种表示方式,假设蜂鸣字符 
ASCII码值:char beep=7(或者用八进制或者十六进制表示); 








C中提供的特殊的符号序列:char beep='/a'(或者转义的八进制和十六进制表示) 
转义的方式表示:char beep=‘/007' 
转义字符的另外用法:引用特殊的字符常量,如引用/ 、'、 ",写成//、/'、和/" 
 


需要注意的几个方面:


 


无论是普通字符还是转义序列,如果作为双引号中字符集合的一部分,则无需引号 如:printf("Hello!7/n"),打印Hello!7 




什么时候使用ASCII码,什么时候使用转义序列呢?如果要在某个转义序列和其对应的ASCII码之间做出选择,则应当使用转义序列。比如选择'/f'而不是'/014'。首先,转义字符更容易记忆;其次,这样做使程序的可移植性更好。因为在不使用ASCII码的系统中,'/f'仍然适用 




当需要数值编码时,为什么使用'/032'而不是032?首先,'/032'更能清晰地表达程序员表示一个字符编码的意图;其次,'/032'这样的转义序列可以嵌入到C字符串中,而032不可以,例如:"Hello!/007/n"中就嵌入了'/007' 
使用ASCII时要注意数字和数字字符的区别。例如字符4的ASCII码值为52.写法'4'表示符号4而不是数值4。

posted @ 2015-03-23 12:54  Sun果冻  阅读(3316)  评论(0编辑  收藏  举报