浅谈printf函数的返回值

来源:互联网 发布:网络造字 编辑:程序博客网 时间:2024/06/07 07:06
在一个群里看到这样一个题目:
#include <stdio.h>int main(){    int i = 0;    for(i=0; i<10; i++)    {        if( printf("%d\n", i * i) > 2 )         {            printf("    i = %d\n", i);        }    }  return 0;}

下面附上输出结果:


最开始迷惑在这句话    if( printf("%d\n", i * i) > 2 ) 中的printf("%d\n", i * i),这玩意儿到底是多少?

百度了一下,printf的返回值是它输出的字符数.

比如printf("abcd\n"),这是printf返回的应该是5,因为有5个字符,分别是a,b,c,d,\n(注意\n是一个字符,转义字符)

printf("%d\n", i * i)这个函数返回的字符数由两部分组成:%d和\n。

如果%d代表的数字是100,那么%d就是3个字符,加上\n这个字符,一共4个字符,返回值为4。

i*i可能等于0,1,4,9,16,25,36,49,64,81,所以printf返回的字符可能是2个,3个。

1 0
原创粉丝点击