【发布时间】:2017-03-03 12:49:11
【问题描述】:
好的,我正在玩一些代码,试图理解一些技巧以及它是如何工作的,所以我不明白这段代码的输出
int i = 8;
printf("%d", printf("%o", i));
这个结果是102,我不知道怎么回事,我知道八进制中的8是10,但最让我困惑的是当我像这样在%o后面加空格时
printf("%d", printf("%o ", i));
现在,结果是 10 3,这是怎么回事?
【问题讨论】:
-
@Jean-FrançoisFabre
printf返回int -
首先打印
i,然后打印i的打印结果。您是否查看过printf的文档以查看它返回的内容? -
@Jean-FrançoisFabre,不,printf 返回写入的字符总数。
-
如果您使用
printf("%d", printf("12"));与printf("%d", printf("123"));,您会得到相同的结果。八进制数与它无关。