mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
794 字
2 分钟
c06
2025-11-13
c

C/C++ 格式转义符完整参考手册#

整数类型格式符#

格式符含义示例
%d有符号十进制整数printf("%d", 123); → “123”
%i有符号十进制整数(同%d)printf("%i", 123); → “123”
%u无符号十进制整数printf("%u", 123u); → “123”
%o无符号八进制整数printf("%o", 10); → “12”
%x无符号十六进制(小写)printf("%x", 255); → “ff”
%X无符号十六进制(大写)printf("%X", 255); → “FF”

浮点数类型格式符#

格式符含义示例
%f小数形式浮点数printf("%f", 3.14); → “3.140000”
%e指数形式(小写e)printf("%e", 123.45); → “1.234500e+02”
%E指数形式(大写E)printf("%E", 123.45); → “1.234500E+02”
%g自动选择%f或%e(较短者)printf("%g", 123.45); → “123.45”
%G自动选择%f或%E(较短者)printf("%G", 0.0001); → “0.0001”
%a十六进制浮点数(C99)printf("%a", 3.14); → “0x1.91eb86p+1”
%A十六进制浮点数(大写)printf("%A", 3.14); → “0X1.91EB86P+1”

字符和字符串格式符#

格式符含义示例
%c单个字符printf("%c", 'A'); → “A”
%s字符串printf("%s", "hello"); → “hello”
%p指针地址printf("%p", &x); → “0x7ffeeb39a82c”

特殊格式符#

格式符含义示例
%%输出%字符本身printf("%%"); → ”%“
%n将已输出字符数存入指针int count; printf("hi%n", &count); → count=2

长度修饰符#

修饰符含义示例
%hdshort intshort s=100; printf("%hd", s);
%ldlong intlong l=1000L; printf("%ld", l);
%lldlong long intlong long ll=1000LL; printf("%lld", ll);
%luunsigned longunsigned long ul=1000UL; printf("%lu", ul);
%lfdoubledouble d=3.14; printf("%lf", d);
%Lflong doublelong double ld=3.14L; printf("%Lf", ld);

完整示例代码#

#include <stdio.h>
int main() {
int integer = 42;
float floating = 3.14159;
double double_val = 2.71828;
char character = 'X';
char string[] = "Hello World";
void* pointer = &integer;
// 整数类型
printf("十进制: %d\n", integer); // 42
printf("八进制: %o\n", integer); // 52
printf("十六进制: %x\n", integer); // 2a
printf("十六进制: %X\n", integer); // 2A
// 浮点类型
printf("浮点数: %f\n", floating); // 3.141590
printf("科学计数: %e\n", floating); // 3.141590e+00
printf("自动选择: %g\n", 123.45); // 123.45
printf("自动选择: %g\n", 0.000123); // 1.23e-04
// 字符和字符串
printf("字符: %c\n", character); // X
printf("字符串: %s\n", string); // Hello World
printf("指针: %p\n", pointer); // 0x7ffd42a1b2ac
// 宽度和精度控制
printf("宽度8: |%8d|\n", integer); // | 42|
printf("左对齐: |%-8d|\n", integer); // |42 |
printf("前导零: |%08d|\n", integer); // |00000042|
printf("浮点精度: %.2f\n", floating); // 3.14
return 0;
}

C 语言中常用的函数速查表#

函数名字描述函数原型
printf格式化输出int printf(const char *format, …);
scanf获取用户输入int scanf(const char *format, …);
getch从控制台获取一个字符但是不回显到屏幕上,不需要按回车键立刻读取(不是标准库函数,通常Windows)int getch(void);
memset是 C 语言标准库中的一个内存操作函数,用于将内存块的每个字节设置为特定的值 memset 将 ptr 指向的内存块的前 num 个字节每个都设置为 value 的值。void *memset(void *ptr, int value, size_t num);
strcpystrcpy 用于将 源字符串 复制到 目标字符串,包括字符串的结束符 \0。 返回指向目标字符串的指针char *strcpy(char *destination, const char *source);
strcmp比较字符串 =0 相等 <0 1小于2 >0 1大于3int strcmp(const char *str1, const char *str2);
strcat将源字符串 src 连接到目标字符串 dest 的末尾目标字符串必须有足够的空间容纳连接后的结果 源字符串的 \0 会被覆盖,并在新字符串末尾添加 \0。char *strcat(char *dest, const char *src);
malloc申请内存,失败返回NULL,否则返回内存地址,内存中为垃圾值,需要清零, 需要free释放void* malloc(unsigned int num_bytes))
callocnelem: 元素个数,elsize 元素长度 分配的内存会被初始化为零, free释放void* calloc(size_t nelem, size_t elsize);
realloc先判断当前指针是否由足够的地址空间,如果有,扩大mem_address指向的地址,并将mem_address返回,如果
空间不够,先安装newsize指定大小分配空间,将原有数据从头到尾考培到新分配的内存区域,而后释放原来mem_address所指的内存区域,
同时返回新分配的内存区域首地址,free释放
void* realloc(void* mem_address, unigned int newsize);
free释放内存
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

c06
https://yoyolp.github.io/posts/llang/c_asm/cformattable/
作者
超级玉米人
发布于
2025-11-13
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录