转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) ,一般相当于四个空格,或者 tab 键的功能 | 009 |
\v | 垂直制表(VT) | 011 |
\’ | 单引号 | 039 |
\ " | 双引号 | 034 |
\\ | 反斜杠 | 092 |
\0 | 空字符(NULL) | 0 |
转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限:
八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是\177;
十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是\7f。
控制符 | 说明 |
---|---|
%d | 按十进制整型数据的实际长度输出。 |
%ld | 输出长整型数据。 |
%md | m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。 |
%u | 输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编程的时候最好不要这么写,因为这样要进行一次转换,使 CPU 多做一次无用功。 |
%c | 用来输出一个字符。 |
%f | 用来输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入。 |
%lf | 这个是double的输出控制符(double只能用这个,否则会出错!) |
%.mf | 输出实数时小数点后保留 m 位,注意 m 前面有个点。 |
%o | 以八进制整数形式输出(这个就用得很少了,了解一下就行了。) |
%s | 用来输出字符串。用 %s 输出字符串同前面直接输出字符串是一样的。但是此时要先定义字符数组或字符指针存储或指向字符串,这个稍后再讲。 |
%x | (或 %X 或 %#x 或 %#X) 以十六进制形式输出整数,这个很重要。 |
十六进制输出:如果是小写的x,输出的字母就是小写的;如果是大写的X,输出的字母就是大写的;如果加一个#,就以标准的十六进制形式输出。
最好是加一个#,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!总之,不加#容易造成误解。但是如果输出 0x2f 或 0x2F,那么人家一看就知道是十六进制。而且%#x和%#X中,笔者觉得大写的比较好,因为大写是绝对标准的十六进制写法。
小结:在C语言中,‘\’、’%‘和’='都是有特殊意义的,所以,要表示“\”,就要输入"\\",同理,“%”要输入"%%",“=”要输入"=="。
(有趣的是,在编写这篇文章时,在转义符哪,我最下面四个输了两次\,小结我输了四次。)