C++,很简单的问题,关于printf("%c",x)和putchar(x)的区别,谁能告诉我一下

#include<stdio.h>
void main()
{
    char x;
    for(x='A';'A'<=x&&x<='Z';x++)
    {
       printf("%c\n",printf("%c",x)+' ');
    }
}
#include<stdio.h>
void main()
{
    char x;
    for(x='A';'A'<=x&&x<='Z';x++)
    {
       printf("%c\n",putchar(x)+' ');
    }
}

请问这里printf("%c",x)和putchar(x)有什么区别,为什么第一个输出的不是我想要的答案。

putchar返回值和printf的返回值不同
putchar返回输出的字符
printf返回控制输出的字符数

哦,原来是这样,谢谢啦。