c语言中符号*都有什么作用?

int i=1;
printf("%*d\n",i,i);怎么后面有两个i 呀
初学者~~~请教各位高手呀

第1个回答  2007-07-28
printf("%*d\n",i,i);

加上*号后,输出列表中的第一个i表示输出列宽,使要输出的参数右对齐,此时i=1表示输出列宽为1,于是在第一列显示1,假设是如下语句:
printf("%*d\n",3,i);

由于输出列宽是3,于将在第三列输出i的值。

另外,printf("%-*d\n",i,i);表示左对齐
相似回答