c语言笔记 格式化输出函数的使用
目录
printf函数是什么?
printf函数是如何的使用?
常数.
变量.
常数+变量(整型,float,char等).
函数返回值.
三目运算符.
字符.
字符串.
指针类型:
复合类型:
特殊用法:参数数量与格式符不匹配(不推荐,但需了解)
关键特性:格式化输出
格式字符串中的 “特殊元素”
printf函数是什么?
  printf 是 C 语言中最核心的格式化输出函数,用于向控制台(终端)打印文本和数据,需包含头文件 #include<stdio.h> 才能使用。
printf函数是如何的使用?
printf函数的基本格式如下
printf("格式字符串",参数1,参数2);那么这些参数1,参数2是什么呢?我将其总结参数有下面几种类型:
常数.
printf("%d\n",10+20);//打印30
变量.
int x =10; printf("%d\n",x);//打印10
常数+变量(整型,float,char等).
int x = 10; printf("%d\n",x+20);//打印30
函数返回值.
#include<stdio.h> int add(int x,int y) {return x+y; }int main() {int x = 19;int y = 2;printf("x+y = %d\n",add(x,y));return 0; }
三目运算符.
#include<stdio.h>int main() { //这个是输入成绩反馈等级的代码int score = 0;scanf("%d",&score);//格式化输入//嵌套式三目运算符printf("成绩:%s\n",score>85&&score<=100?"优秀":score>=70&&score<=85?"中等":score>=60&&score<70?"良好":score>=0&&score<60?"不合格":"无分数");return 0; }
字符.
char x = 'c'; printf("%c\n",'c'); printf("%c\n",x);
字符串.
char str[] = "hello world"; printf("%s\n",str);
指针类型:
- 字符串本质是
char*指针,用%s输出(需以\0结尾)。char* str = "hello"; printf("%s", str); // 输出:hello- 其他指针(如
int*)通常用%p输出其内存地址(十六进制形式)。int x = 10; printf("x的地址:%p", &x); // 输出:x的地址:0x7ffdxxxx(具体地址因系统而异)
复合类型:
- 结构体、数组等不能直接用单个格式符输出,需逐个成员 / 元素输出。
struct Student {char name[20];int age; } s = {"Alice", 18}; // 需分别输出成员 printf("姓名:%s,年龄:%d", s.name, s.age); // 输出:姓名:Alice,年龄:18
特殊用法:参数数量与格式符不匹配(不推荐,但需了解)
若参数数量或类型与格式符不匹配,编译器可能不报错,但会输出错误结果(未定义行为):
关键特性:格式化输出
“格式化” 是 printf 的核心能力,通过格式控制符指定数据的输出形式,常见控制符如下:

格式字符串中的 “特殊元素”
格式字符串不仅包含普通文本和格式控制符,还可以包含:
-  转义字符:用于输出特殊符号(如换行、制表符等)  
-  格式修饰符:用于精细化控制输出格式(与格式控制符配合使用 
- 宽度控制:%5d表示输出宽度为 5 位,不足补空格(右对齐);%-5d表示左对齐。printf("|%5d|", 123); // 输出:| 123|(宽度5,右对齐) printf("|%-5d|", 123); // 输出:|123 |(宽度5,左对齐)
- 精度控制:%.2f表示浮点数保留 2 位小数;%.3s表示字符串只输出前 3 个字符。printf("%.2f", 3.1415); // 输出:3.14 printf("%.3s", "hello"); // 输出:hel
- 类型长度修饰符:如 %ld用于输出long类型整数,%lld用于long long类型。long num = 1000000; printf("%ld", num); // 必须用%ld,否则可能输出错误
