您的位置:首页 > 其它

浅谈printf函数的返回值

2016-01-31 21:46 369 查看
在一个群里看到这样一个题目:
#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个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: