printf(“%*d\n”,4,2345);输出什么?为什么?

如题所述

printf中 * 符号表示人为指定输出表达式的长度,后面的 4 就是指长度。2345 是要输出的表达式。 如果改为 printf("%*d\n",6,2345); 则会输出两个空格,再输出2345,就是" 2345"因为总长度变成6了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-14
char ch[20];
strcpy(ch,"123456780123");
int n = 2,m = 10;
//*.* 呢,前边的*定义的是总的宽度,后边的定义的是输出的个数。
//如果后边的比前边的小,则使用空格在左侧补够m位。
printf("%*.*s\n",m,n,ch);//这里输出“ 12”
printf("%*.*s\n",n,m,ch);//这里输出“1234567890”
第2个回答  2013-09-14
输出是2345printf中在* 格式列表中,表示参数是width即4个字节
相似回答