printf函数的返回值是输出的字符个数,因为你输入的两个字符长度都是3,所以wname和wsurname都是3
对于最后一个printf中的%* d,含义如下:
printf("%*d",a,b);
其中,a代表*,即格式化输出a个宽度的整形b。
因为你输入的两个字符长度都是3,所以最后一个printf 就等价于
printf("\n%3d %3d",wname,wsurname)
从而实现控制输出长度,%后面是正数,表示右对齐,如果是负数就是左对齐。
%3d表示,输出长度为3,右对齐输出
%-3d表示,输出长度为3,左对齐输出
直接上代码:
int main()
{
//int a = 3, b = 5;
//printf("%%%d,%%d", a,b);
printf("%\n");
printf("\%\n");
printf("\\\n");
printf("%%\n");
return 0;
}
运行结果:
正确方法就是打俩 %