C语言中8进制16进制转义字符的使用
什么是转义字符
C语言允许一种特殊形式的字符常量,就是以字符 \ 开头的字符序列。例如在printf函数中的 ‘\n’ 代表一个“换行符”。‘\t’ 代表将输出的位置跳到下一个Tab(制表位置),一个Tab位置为8列。这是一种在屏幕上无法显示的“控制字符”,在程序中无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。
常用的转义字符见下表
转义字符 | 字符值 | 输出结果 |
---|---|---|
\’ | 一个单撇号(’) | 具有此八进制码的字符 |
\" | 一个双撇号(") | 输出此字符 |
\? | 一个问号(?) | 输出此字符 |
\ | 一个反斜线(\) | 输出此字符 |
\a | 警告(alert) | 产生声音或视觉信号 |
\b | 退格(backspace) | 将当前位置后退一个字符 |
\f | 换页(form feed) | 将当前位置移动到下一页的开头 |
\n | 换行 | 将当前位置移动到下一行的开头 |
\r | 回车(carriage return) | 将当前位置移动到本行的开头 |
\t | 水平制表符 | 将当前位置移动到下一个tab位置 |
\v | 垂直制表符 | 将当前位置移动到下一个垂直制表对齐点 |
\o、\oo或\ooo(其中o)代表一个八进制数字 | 与该八进制码对应的ASCⅡ字符 | 与该八进制码对应的字符 |
\xh[h…](其中h代表一个十六进制数字) | 与该十六进制码对应的ASCⅡ字符 | 与该十六进制码对应的字符 |
本文只讨论倒数两行的十六以及八进制转义字符的使用
八进制与十六进制转义字符的使用
所以有以下代码
#include<stdio.h>
int main()
{
printf("\x41\n");
printf("\101\n");
return 0;
}
16进制中41对应10进制为65,对应ASCⅡ编码为A
8进制中101对应10进制也为65,对应ASCⅡ编码也为A
输出为:
A
A
相应的,将程序改为:
#include<stdio.h>
int main()
{
printf("\x4D\n");
printf("\150\n");
return 0;
}
4D对应十进制为77,对应ASCⅡ编码为M
150对应十进制104,对应ASCⅡ编码为h
输出为:
M
h
附:ASCⅡ表