[英]return value of printf in c?
int main()
{
int x = 10, y;
y = printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}
output:
x = 10
y = 7
我知道printf在我们打印字符串时会返回字符数。 但是,为什么在打印10时返回7?在打印int时printf的返回值是多少?
可能重复: C语言中printf()函数的返回值
就像您说的那样,“ printf在打印字符串时返回字符数”。
“ x = 10\\n
”有7个字符。 (即,这些: 'x',' ','=',' ','1','0','\\n'
)。
因此,y设置为7。
读取: int printf(const char * format,...);
成功后,将返回写入的字符总数。
对于x = 10
在代码中的第一个printf:
printf("x = %d\n", x);
打印七个字符x = 10\\n
,并返回在y
收到的7:
x = 10\n
1234567
^ ^ ^- new line char \n
| |--spaces
记住\\n
(换行符)是单个字符,空格是单个字符。
字符串的长度:
"x = 10\n"
(不包括双引号)为7个字符。 那就是存储在y中的东西 。 空格和“ \\ n”也仅是1个字符。
“ x =%d \\ n”当然有7个字符。 注意,这里有2个“空格”,1个“%”和1个“ d”,请记住“ \\ n”是一个整数。 您可以尝试其他句子。 例如z = printf("x = %d,asd\\n",x);
或某物 像那样。 答案是11。我认为这样的问题可以通过再一个行代码来解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.