击上方关注 “终端研发部”
设为“星标”,和你一起掌握更多数据库知识
我们都知道,输出函数printf是C语言中一个非常重要的函数,一般用于向标准输出设备按规定格式输出信息,通过printf函数向终端输出字符,要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
举个例子:当我们用C 语言在屏幕中输出了"Hello World!"的时候,
比如我们想通过下面这段代码在屏幕上输出鱼形图案

参数入栈顺序以及计算顺序
在C语言中,参数入栈顺序是确定的,从右往左。而参数的计算顺序却是没有规定的。也就是说,编译器可以实现从右往左计算,也可以实现从左往右计算。
但就printf这个函数而言,它的使用却不只是这么简单。
格式化字符串包含三种对象,分别为:(1)字符串常量;(2)格式控制字符串;(3)转义字符。
C语言格式字符
1、d格式符
用来输出一个有符号的十进制整数。
2、c格式符
用来输出一个字符
3、s格式符
用来输出一个字符串
4、f格式符
字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以 % 开头的字符串,在 % 后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。
(1)使用 printf() 输出宽字符时,需要使用 setlocale 指定本地化信息并同时指明当前代码的编码方式。除了使用 %S,还可以使用 %ls。

(2)printf() 输出 bool 类型无专用类型标识符,实际输出时按照整型 0 或 1 输出布尔值。
(3)%a 和 %A 是 C99 引入的格式化类型,采用十六进制 p 计数法输出浮点数。
printf()维持了一个须要打印的变量栈。默认情况下,參数进栈的顺序是由右向左的,因此,參数进栈以后的内存模型例如以下图所看到的:

打印的时候,printf依照字符转换说明符规定的格式从低地址開始提取数据。直到參数打印完。

回复 【idea激活】即可获得idea的激活方式
回复 【Java】获取java相关的视频教程和资料
回复 【SpringCloud】获取SpringCloud相关多的学习资料
回复 【python】获取全套0基础Python知识手册
回复 【2020】获取2020java相关面试题教程
回复 【加群】即可加入终端研发部相关的技术交流群
阅读更多
用 Spring 的 BeanUtils 前,建议你先了解这几个坑!
在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!
一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!


喜欢就给个“在看”
本文详细介绍了C语言中的printf函数,包括其用途、参数入栈顺序、格式控制字符及其功能,如d、c、s和f格式符的使用。同时提及了printf的复杂性,如处理宽字符和bool类型,以及SpringBeanUtils的一些注意事项。
2790

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



