好吧,我正在玩一段代码,试着理解一些技巧以及它是如何工作的,所以我不明白这段代码的输出
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/