printf()是一个库函数,所谓库函数,是用C语言写好的一些函数,供程序员使用的,它本身不是C语言内置的东西,但体现C语言的特色,我们学库函数,是体会语言如何实践的,即了解语言写出来的东西“原来可以是这样的”。
printf()函数的处理过程其实是这样:首先照原样输出格式字符串,逐个字符用putchar()輸出,当它遇到'%'号,就开始警惕了,此时不輸出,先看下一个字符是什么,如果是约定的一些控制格式符,比如是d,那么就意味着,它需要輸出一个十进制表示的字符串(不再是原样输出),于是它到参数列表中,按顺序提出与%d对应的那个数据,视为十进制整数(其实是不管那个数据是不是真的十进制整数都当作是十进制整数),(用大家都学过的那种转换算法)转换为字符串,填在%d的位置;如此不断遍历第一个参数字符串的所有字符,不断处理,直到结束。
printf()函数的处理过程其实是这样:首先照原样输出格式字符串,逐个字符用putchar()輸出,当它遇到'%'号,就开始警惕了,此时不輸出,先看下一个字符是什么,如果是约定的一些控制格式符,比如是d,那么就意味着,它需要輸出一个十进制表示的字符串(不再是原样输出),于是它到参数列表中,按顺序提出与%d对应的那个数据,视为十进制整数(其实是不管那个数据是不是真的十进制整数都当作是十进制整数),(用大家都学过的那种转换算法)转换为字符串,填在%d的位置;如此不断遍历第一个参数字符串的所有字符,不断处理,直到结束。
授人以渔,不授人以鱼。