[英]Can anyone explain the output of following statement?
我无法理解用 C 编写的以下语句:
printf("%d", printf("%d", printf("%s", "I love c programming")));
用 C 编写这样的语句是否有效?
当我运行它时,我得到输出:
I love c programming202
谁能解释一下这个语句的输出?
printf
返回一个int
指示错误或包含写入的字符数。 因此,因为%d
是int
的格式字符串,所以这种嵌套是完全有效的。
你的输出是"I love c programming202"
。 那么让我们分解一下:
printf
打印"I love c programming"
。 这是printf
返回的 20 个字符。printf
打印20
因为这是前一个printf
的返回值。printf
打印2
因为20
有 2 个字符。是的。 printf
是一个返回整数值的函数(打印的字符数,包括末尾的 \\n)
printf 返回值:成功返回后,这些函数返回打印的字符数(不包括用于结束输出到字符串的空字节)。
printf("%d",printf("%d",printf("%s","I love c programming")));
<=>
int ret;
// output "I love c programming" => ret = 20
ret = printf("%s","I love c programming");·
// ret = 20 => output "20" => ret = 2
ret = printf("%d", ret);
print("%d", ret); // ret = 2 => output "2"
// => I love c programming202
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.