printf是输出一个字符串,putchar输出一个char。
占位符 | 对应数据类型 | 含义 |
| %c | char | 用于输出单个字符类型。 可以把输入的数字按照ASCII码相应转换为对应的字符 |
%hd | short int | 输出short类型短整数 |
| %hu | unsigned short | 输出unsigned short类型短整数 |
%s | char * | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符) |
%d | int | 输出一个有符号的10进制int类型数值 |
| %u | unsigned int | 输出一个无符号10进制int整型整数 |
| %o(字母o) | unsigned int | 输出 无符号8进制int类型 整数 |
%ld | 输出long类型 | |
%lld | 输出long long类型 | |
%lu | 输出unsigned long类型 | |
%llu | 输出unsigned long long类型 | |
| %x %X | unsigned int | 输出无符号16进制整数,x字母以小写输出 abcdef,X字母以大写输出 ABCDEF |
| %f | float | 表示输出一个单精度浮点数%f默认只输出 6 位小数 会四舍五入 |
| %.2f | float | 表示输出一个单精度浮点数 只保留2位小数 会四舍五入 |
| %.9f | float | 表示输出一个单精度浮点数 保留9位小数 会四舍五入 |
%lf | double | 表示输出一个双精度浮点数默认保留六位小数 会四舍五入 |
%e,%E | double | 科学计数法表示的数,此处"e"的大小写代表在输出时用的"e"的大小写 |
| %zu | 专门用于打印 size_t(别名) 类型的无符号整数变量 | |
%p | void * | 表示输出一个变量对应的内存地址编号(无符号十六进制整型数) C 标准明确规定 %p可以打印变量或指针的内存地址。(注意,为了兼容性,通常将地址转换为void*类型进行打印。) |
%% | % | 输出一个百分号 |
l(字母l) | 附加在d,u,x,o前面,表示长整数 | |
- | 左对齐 | |
m(代表一个整数) | 数据最小宽度 | |
0(数字0) | 将输出的前面补上0直到占满指定列宽为止不可以搭配使用- | |
m.n(代表一个整数) | m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。 |
#include<stdio.h> int main() { int a = 123; //定义变量a,以10进制方式赋值为123 printf("a = %d\n", a); // a = 123 int b = 0567; //定义变量b,以8进制方式赋值为0567 printf("8进制:b = %o\n", b); //8进制:b = 567 printf("10进制:b = %d\n", b);// 10进制:b = 375 int c = 0xabc; //定义变量c,以16进制方式赋值为0xabc printf("16进制:c = %x\n", c); //16进制:c = abc printf("16进制:c = %X\n", c);//16进制:c = ABC printf("10进制:c = %d\n", c); //10进制:c = 2748 unsigned int d = 0xffffffff; //定义无符号int变量d,以16进制方式赋值 printf("有符号方式打印:d = %d\n", d); //有符号方式打印:d = -1 printf("无符号方式打印:d = %u\n", d); //printf("无符号方式打印:d = %u\n", d); return 0; }