为什么这个嵌套的printf语句打印" 5 53"?

时间:2015-06-30 20:21:42

标签: c++ c

#include <stdio.h>

int main() {
    int x=5;
    printf("%d", printf("%d %d",x,x));
}

输出5 53如何解释? 我试过自己,我认为答案应该是5 5 2

1 个答案:

答案 0 :(得分:14)

printf的返回值是

  

传输到输出流的字符数,如果出现输出错误或编码错误(对于字符串和字符转换说明符),则为负值

(来自here,强调我的)和“5 5”是三个字符(即“五个空间五”)。所以打印的最后一个数字是3。