我的代码:
int main() {
int x = 10, y;
y = printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}
输出:
x = 10
y = 7
我知道 printf 在我们打印字符串时会返回字符数。但是为什么打印 10 时返回 7。 printf 打印 int 时的返回值是多少?
可能重复: C 中 printf() 函数的返回值
我的代码:
int main() {
int x = 10, y;
y = printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}
输出:
x = 10
y = 7
我知道 printf 在我们打印字符串时会返回字符数。但是为什么打印 10 时返回 7。 printf 打印 int 时的返回值是多少?
可能重复: 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
,并返回接收到的 7 y
:
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。我认为这样的问题可以通过多行代码来完成。