这才是你上面代码的结果,n=23,,23是由printf函数返回值得到的,第一个printf 在此输出了23字符的结果,所以返回值是23,而你这里用%n(字符数目)和&n,就把23赋值给了n。
用一下代码来验证:
#include
int main()
{
int n,num;
char*m2="Decimal";
char*m3="Octal";
char*m4="Hexadecimal";
num = printf("%s%s%s%n",m2,m3,m4,&n);
printf("\n\n%d\n",n);
printf("\n\n%d\n",num);
return 0;
}
输出结果:
这与int n 在哪里定义无关,只要放在printf前面就好。