【1】占位符
占位符
占位符的第一个车字符是
%
,第二个字符表示占位符的类型。printf()
的占位符有许多种类,与 C 语言的数据类型相对应。下面按照字母顺序,列出占位符如下,方便查询(黄色背景为常用):
%a
浮点数(仅 c99 有效)
%A
浮点数(仅 c99 有效)
%c
: char 类型数据
%d
: 十进制整数 (int)
%e
使用科学记数法的浮点数,指数部分的 e 为小写
%E
使用科学记数法的浮点数,指数部分的 e 为大写
%i
整数,基本等同于%d
%f
: 加粗样式
%g
6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学记数法,指数部分的 e 为小写。
%G
等同于 %g, 唯一的区别是指数部分的 E 为大写
%hd
十进制 short int 类型
ho
八进制 short int 类型
hx
十六进制 short int 类型
%hu
unsigned short int 类型
%ld
十进制整数(long)
%lo
八进制 long int 类型
%lx
十六进制 long int 类型
%lu
unsigned long int 类型
%lld
十进制 long long int 类型
%le
科学记数法表示 long double 类型浮点数
%lf
十进制浮点数(double)
%n
已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量中
%o
八进制整数
%p
指针
%s
字符串
%u
十进制无符号整数(unsigned int)
%x
十六进制整数
%zd
size_t 类型
%%
输出一个百分号
示例:
#include <stdio.h>int main() {// %c: 字符类型char ch = 'A';printf("字符: %c\n", ch); // 输出: 字符: A// %d 或 %i: 十进制整数int num = 123;printf("整数: %d\n", num); // 输出: 整数: 123printf("整数: %i\n", num); // 输出: 整数: 123 (与%d相同)// %ld: 十进制long类型long bigNum = 123456789L;printf("长整数: %ld\n", bigNum); // 输出: 长整数: 123456789// %f: float类型float f = 3.14f;printf("单精度浮点数: %f\n", f); // 输出: 单精度浮点数: 3.140000// %lf: double类型double d = 3.1415926535;printf("双精度浮点数: %lf\n", d); // 输出: 双精度浮点数: 3.141593// %s: 字符串char str[] = "Hello World";printf("字符串: %s\n", str); // 输出: 字符串: Hello World// %u: 无符号整数unsigned int u = 123;printf("无符号整数: %u\n", u); // 输出: 无符号整数: 123// %p: 指针int *ptr = #printf("指针地址: %p\n", ptr); // 输出: 指针地址: 0x7ffdxxxxxxx (具体地址取决于系统)return 0;
}