c - 嵌套 printf 语句的奇怪输出

标签 c printf output

好吧,我正在玩一段代码,试着理解一些技巧以及它是如何工作的,所以我不明白这段代码的输出

int i = 8;
printf("%d", printf("%o", i));

结果是 102,我不知道怎么算,我知道 8 在八进制系统中是 10,但最让我困惑的是当我像这样在 %o 之后放置空格时

printf("%d", printf("%o ", i));

现在,结果是 10 3,这是怎么回事?

最佳答案

Printf 打印到标准输出,并返回 int,打印字符数。 所以你得到:

10 3

即:

10 是打印八进制 8 的评估内部 printf。

和 3,打印内部 printf 的“返回”值的评估外部 printf = 3 个打印字符。

关于c - 嵌套 printf 语句的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172734/

相关文章:

json - XML 到 JSON 多重嵌套

c - 为什么我不能在 gdb 中将 printf 与临时结构的字符串成员一起使用

c - 如何在看门狗重启操作系统之前检测 Linux (Debian) 看门狗守护进程中出现的问题

c - 这个 printf() 语句的输出是如何计算的?

c - 如何用C从文件中读取特定数量的行

linux - 如何在控制台中获取 Google-glog 输出?

c++ - 编译错误。如何使用 lex/yacc 解析变量名?

c++ - 大型 const 数组的初始化?

C 字符数组打印为字符串错误并接受空终止?

awk - %a 转换说明符无法识别