一、格式化占位符及其作用
1.整型
打印格式 | 对应数据类型 | 含义 |
---|
%d | int | 接受整数值并将它表示为有符号的十进制整数 |
%ld | long int | 长整数 有符号的十进制整型 |
%hd | short int | 短整型 |
%lld | long long int | 64位整型 |
%zd | signed long long int | 既能打印无符号整型又能打印有符号整型 |
%o | unsigned int | 无符号8进制整型 |
%x/%X | unsigned int | 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF |
%u | unsigned int | 无符号整型 |
%zu | unsigned long long int | %zu: 无符号整型 (在C语言中,%zu 是一个格式化占位符,专门用于输出 size_t 类型 的无符号整数值) |
%llu | unsigned long long int | 无符号64位长整型 |
%hu | unsigned short | 无符号短整数 |
2.浮点型
打印格式 | 对应数据类型 | 含义 |
---|
%e/%E | double | 科学计数法 |
%f | float | 单精度浮点数 |
%lf | double | 双精度浮点数 |
在 printf
中,%lf
和 %f
是等价的,都可以用于输出 double
类型的浮点数。但在 scanf
中,必须使用 %lf
来读取 double
类型的变量,因为 %f
仅用于 float
类型。
字符和字符串
打印格式 | 对应数据类型 | 含义 |
---|
%c | char | 字符型,输入的数字按照ASCII码相应转换为对应的字符 |
%s | char * | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符) |
3.其他类型和指针
打印格式 | 对应数据类型 | 含义 |
---|
%p | void * | 以16进制形式输出指针、打印地址和长度 |
%% | | 输出百分号(% ) |
二、转义字符及其作用
转义字符 | 含义 | ASCII码值(十进制) |
---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS),将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF),将当前位置移到下一行开头 | 010 |
\r | 回车(CR),将当前位置移到本行开头 | 013 |
\t | 水平制表(HT)(跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符"\" | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |