引言
在 C 语言中,printf和put(通常指putchar或puts)是用于输出的函数,但功能和用法有明显区别:
核心差异对比
| 函数 | printf | putchar / puts |
|---|---|---|
| 功能 | 格式化输出(支持多种数据类型) | 单个字符输出(putchar)或字符串输出 |
| 参数 | 格式化字符串 + 可变参数列表 | putchar(char) 或 puts(const char*) |
| 输出结尾 | 不自动添加换行符 | puts自动添加换行符,putchar 不添加 |
| 返回值 | 成功输出的字符 | putchar 返回输出的字符,puts 返回非负值(成功)或 EOF(失败) |
举例:
printf(格式化输出)
int num = 42;
float f = 3.14;
printf("整数: %d, 浮点数: %.2f\n", num, f);
// 输出: 整数: 42, 浮点数: 3.14
putchar(输出单个字符)
putchar('A');
// 输出字符'A'
putchar('\n');
// 手动添加换行
puts(输出字符串并自动换行)
puts("Hello");
// 输出"Hello"并自动换行
puts("World");
// 输出"World"并自动换行
性能与适用场景
printf:适合复杂格式化需求,但开销较大(需解析格式字符串)。putchar:适合逐个字符输出(如实现自定义输出函数)。puts:适合快速输出字符串(无需手动处理换行)。
注意事项
puts与字符串终止符:
char str[5] = {'H', 'e', 'l', 'l', 'o'}; // 缺少'\0'
puts(str); // 可能输出乱码,因为未找到字符串终止符
写成这样,结尾将自动补'\0'
char str[] = "Hello";
puts(str);
putchar的参数类型:
putchar('A'); // 正确
putchar("A"); // 错误!"A"是字符串(char*),而非字符
| 场景 | 推荐函数 |
|---|---|
| 格式化输出 | printf |
| 输出单个字符 | putchar |
| 输出字符串并换行 | puts |
| 高性能字符流输出 | putchar或fputc |
1629

被折叠的 条评论
为什么被折叠?



