1. printf返回值的定义
int printf(const char *格式,...);
我们首先看到printf函数的返回值是int类型,也就是有符号整型。
所以printf返回值指的是输出的字符数量(单位是字节,一个字符是一个字节),遇到'\0'停止打印,返回'\0'之前的字符个数
2.代码举例
2.1 代码一:输出字母和数字的printf返回值
#include "stdio.h" int main() { int x = printf("123abcdABCD"); printf("\n"); printf("%d\n",x); return 0; }
在这里我们可以看到最后printf返回值是11,我们首先输入了3个数字,8个字母
我们知道 1个数字或1个字母都是1个字节 ,所以一共有11个字节。但是在这里我们要知道
“123abcdABCD”是一个字符串,字符串末尾有个隐藏的'\0',所以返回'\0'之前的字符个数
所以这也论证了我们最开始的定义。
2.2 代码二:输出转义字符
#include "stdio.h" int main() { int x = printf("\t\b\n\r\f\v\123\x2\a\1\23\234\x23"); printf("\n"); printf("%d\n",x); return 0; }
我们可以看到printf返回值是13,这是为什么呢?
首先要明确一点,转义字符比如\t,\b,\n,\r,\f,\v,\123..... 这些都是占一个字节,也就是说
一个转义字符占一个字节。(具体关于转义字符的分类在我的资源中的第二部,免费下载 )
2.3 代码三:输出汉字
#include "stdio.h" int main() { int x = printf("坚持就会变得简单"); printf("\n"); printf("%d\n",x); return 0; }
在这里我就不给大家答案了,有的编译器显示的是24,一个汉字占3个字节
有的显示的是16,一个汉字占2个字节等等。
下面大家自行测试哦,俗话说:实践出真知!
3.总结
printf函数返回值是输出的字符个数,单位是字节,几个字符几个字节,遇到\0返回\0之前的!