我的考试中出现的确切代码段是:
int main()
{
int n=234;
printf("%d,",printf("%d",n));
}
根据编译代码时得到的结果,答案是:"2343,"
为了解释,我问了我的朋友,他说最外面的printf()
给出了数字中的位数...
真的吗?有人可以解释一下吗?
答案 0 :(得分:4)
答案 1 :(得分:2)
printf
将返回打印的字符数。
因此,在您的示例中,您在n
变量中有一个由3位数组成的数字(如果打印则对应于3个字符),因此嵌套的printf将在打印出n
后返回3。这将从外看印刷品上打印出来。
(more)
答案 2 :(得分:1)
来自printf的联机帮助页(也可以说是http://linux.die.net/man/3/printf):
Return Value
Upon successful return, these functions return the number of characters printed
(excluding the null byte used to end output to strings).
因此,是的,这是真的。您可以随时调试代码以确保自己。
答案 3 :(得分:1)
是printf返回打印的字符数,例如参见
http://www.cplusplus.com/reference/cstdio/printf/
http://man7.org/linux/man-pages/man3/printf.3.html
所以在这种情况下,首先内部 printf 将 n 的值打印到屏幕(234),然后返回3(= 3个字符),这是由外部 printf 打印。最后有一个逗号,所以最后打印的字符串是'2343,