一个关于printf函数的疑问

#include"stdio.h" main() { int x=3; x=x+printf("%d\n",x); printf("%d",x); }这里printf竟然可以等于数值2;
#include"stdio.h" main() { int x=3; x=x+printf("%d\n",x); printf("%d",x); }这里printf竟然可以等于数值2;
#include"stdio.h" main() { char x[10]="abcd";int z=0,y=0; y=scanf("%s",x); printf("%d\n",y); z=printf("%s\n",x); printf("%d\n",z); }printf函数返回值是:输出字符的个数,包括转义字符