在C语言中什么是字符宽?
printf实参表内的%1d为什么在屏幕上显示与%d一样呢?因为你的程序值为5,只占一个字节,%1d是指整数部位是显示1位,所以就是5但是如果把%1d换成%2d计算结果5的左边就会多一个空格,这是为什么?%2d是指,输出的结果为二位,如果值是一位在左面补空格,这是C语言所规定的所以你的值是5,但要输出的是二位,所以在左面补空格
在C中,printf函数的使用格式是:printf(“格式控制字符串”,输出表列)其中“格式控制字符串”一般形式为:[标志][输出最小宽度][.精度][长度]类型。如LZ问题中"%1d",其中数值1,就是指的输出最小宽度。而这个输出最小宽度,是用十进制整数来表示的。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。所以当这个宽度为1时,因为此时a的值是5,只有1位,定义的宽度不大于实际宽度,所以按实际宽度输出。但是定义宽度为2时,超过了实际数据宽度,所以多输出的位补了空格。另外,LZ所谓的字符宽应该是指输出的字符位数的宽度。
标签:C语言,字符