经过调试发现%*d后面跟两个参数如printf("%*d",a,b);a表示打印的宽度,接着就是输出b的值楼上说对了。。。
如果不指定大小,这个数组就只会有4个元素,没有结尾的'\0'。strlen的工作原理是不断向后看,直到一个'\0'字符。因此第一个程序的运行结果是不可预测的,取决于之前内存里的残留数据。而第二个程序,数组的剩余项均被赋成0