C语言转义字符 转义序列(内含ddd xhh 含义)
转义字符
转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。因此转义字符开头的字符序列被叫做转义序列。
这是百度百科给出的转义字符定义,说白了就是有些东西你没有办法直接输入,而转义字符就可以解决这个问题。
转义序列通常有两种功能。第一个是编码一个句法上的实体,如设备命令或者无法被字母表直接表示的特殊数据。第二种功能,也叫字符引用,用于表示无法在当前上下文中被键盘录入的字符(如字符串中的回车符),或者在当前上下文中会有不期望的含义的字符(如C语言字符串中的双引号字符",不能直接出现,必须用转义序列表示)。在后面那种情况,转义序列是一种由转义字符自身和一个被引用的字符组成的一个二合字母(digraph)情形
下面贴出所有转义字符和所对应的意义:
" ddd xhh " 的用法
ddd代表三位八进制的数字,在程序中’ddd’代表 三位八进制数字在ASCII码表中对应的含义 。
(储备知识:ascii 码 虽然现在定义了128个,但是理论上有256个,八进制表示就是从 00 到 377)
举几个例子:
是三位数字,并 未 超过’377’ 会输出三位数字在ASCII码表对应字符
char ch1 = 41; char ch2 = 47; char ch3 = 101; char ch4 = 171; printf("%c %c %c %c ", ch1, ch2, ch3, ch4);
运行结果:
补充: 上边几个八进制数字在ASCII码表中对应意义
是三位数字且按八进制输入, 但是 超过’377’
char ch5 = 400; char ch6 = 417; printf("%c %c", ch5,ch6);
此时编译器会报错:
是三位数字但未按八进制输入,或 大于三位数字,会输出最后一位数字
char ch7 = 488; char ch8 = 176; char ch9 = 088; printf(" %c %c %c ", ch7,ch8,ch9);
编译器会警告: 运行结果:
最后一种是输入大于四位的有效数字
char ch10 = 88888; char ch11 = 036688; printf(" %c %c ",ch10,ch11);
编译器报错:
‘xhh’就是以16位进制数字表示和’ddd’八进制表示类似。
菜鸟总结,如有错误希望指出。