千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:上海千锋IT培训  >  技术干货  >  putchar和printf的区别?

putchar和printf的区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 11:40:00

一、putchar和printf的区别

1. 从编程者层面来说

printf 可以输出一个任意的字符串,还可以有参数,而putchar只能输出一个字符。

printf 的返回值是正常输出的参数的数量,而 putchar 则是是否正常输出。

putchar:是把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。

printf:是式样化输出函数, 用于向准则输出设备按规定式样输出消息。

输出方式不同

putchar:输出可以是一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是用char定义好的一个字符型变量。

printf:从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的。

putchar:该函数以无符号 char 强制转换为 int 的形式返回写入的字符。

printf:函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。

2. 从底层来说

printf 的时间复杂度是 NlogN , 而 putchar 复杂度是 O1 , 输出句子也只有 ON 。

此外,printf 每执行一次,解析一次格式串,而putchar是编译时尽量优化。

简言之:printf功能更强大 可以输出各种格式。putchar只能输出单个字符。因为字符的处理很特殊,所以专门有对字符的处理,如 putchar ,getchar 之类的。

延伸阅读:

二、putchar程序示例

示例1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38#include  /* define some box-drawing characters */ #define LEFT_TOP 0xDA #define RIGHT_TOP 0xBF #define HORIZ 0xC4 #define VERT 0xB3 #define LEFT_BOT 0xC0 #define RIGHT_BOT 0xD9 int main(void) { char i, j; /* draw the 较好 of the box */ putchar(LEFT_TOP); for(i=0; i<10; i++) { putchar(HORIZ); putchar(RIGHT_TOP); putchar(‘\n’); } /* draw the middle */ for(i=0; i<4; i++) putchar(VERT); for (j=0; j<10; j++) { putchar(‘ ‘); putchar(VERT); putchar(‘\n’); /* draw the bottom */ putchar(LEFT_BOT); } for(i=0; i<10; i++) { putchar(HORIZ); putchar(RIGHT_BOT); putchar(‘\n’); return 0; } }

示例2

1 2 3 4 5 6 7 8 9 10 11#include  int main() { char a,b,c; a=’T’;b=’M’;c=’D’; putchar(a);putchar(b);putchar(c);putchar(‘\n’); putchar(a);putchar(‘\n’); putchar(b);putchar(‘\n’); putchar(c);putchar(‘\n’); return 0; }
1 2 3 4 5输出结果为: TMD T M D

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

NTLEA和Locale Emulator有哪些区别?

2023-10-14

iwatch3gps和蜂窝区别?

2023-10-14

面向对象编程,面向函数式编程,面向过程编程有什么区别?

2023-10-14

最新文章NEW

C 语言中不同类型指针的大小是否完全相同,为什么?

2023-10-14

My.Computer.FileSystem和System.IO.File两个命名空间有哪些具体区别?

2023-10-14

线性分类器与非线性分类器的区别?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>