main()
{
int i=1;
printf("##%*d\n",i,i);
i++
printf("##%*d\n",i,i);
i++
printf("##%*d\n",i,i);
}
參考答案:原先*的位置是表示输出的精度
但如果用*,则会从参数列表中读取一个整形值来填充
比如这道题
int i=1;
printf("##%*d\n",i,i);//填充后变为%1d
i++
printf("##%*d\n",i,i);//填充后变为%2d
i++
printf("##%*d\n",i,i);//填充后变为%3d
}
所以输出就是,我使用下划线代表空格
##1
##_2
##__3
参考资料: