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在打印字符串时返回字符数。但是为什么在打印时返回7.什么是printf打印int时的返回值?
答案 0 :(得分:5)
就像你说的那样,“printf返回打印字符串时的字符数。”
“x = 10\n
”有7个字符。 (即,这些:'x',' ','=',' ','1','0','\n'
)。
因此,y设置为7.
答案 1 :(得分:3)
阅读: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
(新行)是单个字符,空格是单个字符。
答案 2 :(得分:1)
字符串的长度:
"x = 10\n"
(不包括双引号)是7个字符。这就是存储在 y 中的内容。白色空格和'\ n'也只是1个字符。
答案 3 :(得分:0)
“x =%d \ n”当然有7个字符。
注意有2个“空格”,1个“%”和1个“d”,记住“\ n”是一个整体。
你可以尝试其他句子。例如z = printf("x = %d,asd\n",x);
或者......像那样。
答案是11。
我认为这些问题可以通过再增加一行代码来完成。