gpt4 book ai didi

c - 将 printf() 作为参数传递给自身 : printf ("%", printf ("%s", "something something"));

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:09 29 4
gpt4 key购买 nike

这有点像拼图……我刚刚又回到了C,打算这次掌握它。所以我一直在阅读 The C Programming Language ,我得到了这个声明:

Among others, printf also recognizes ... %% for itself.

我以前不知道的事情。所以我开始通过编写这段小代码来使用这个功能:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {

int number = 300;
printf("%\n\n%12d\n\n\n\n\n", printf("%\n\n\n\n\n\n", printf("%s", "foooo!")), number);

return (EXIT_SUCCESS);
}

这是输出: Output screenshot

我希望输出中有 3002 来自哪里 - 有人知道吗?

编辑

我意识到这完全是一个错误,因为我对上面引用的文字有误解。感谢所有人帮助我意识到这一点。

最佳答案

您没有将有效的参数组合传递给三个 printf() 调用中的两个。这导致 undefined behaviour .

Among others, printf also recognizes ... %% for itself.

这意味着格式说明符中的 %% 导致 % 被写入输出。

它与将 printf() 的返回值(即写入的字符数)传递给另一个 printf() 调用无关。而且,此外,您的代码甚至不包含 %%

关于c - 将 printf() 作为参数传递给自身 : printf ("%", printf ("%s", "something something"));,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075645/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com