C里面printf("%-5c",n%10+'0')什么意思

问题描述:

C里面printf("%-5c",n%10+'0')什么意思
n如果是-23066
输出是- 2 3 0 6 6
我就不知道'0'有什么用
1个回答 分类:综合 2014-10-20

问题解答:

我来补答
"%-5c":%-5c 是左对齐,宽度为5,第一格(即贴左边边界)是单字符,其余四格为_(空白符).
而n%10+'0'就是把n除以10的余数加上'0',结果就是余数的ASCII码,比如n=12,n%10+'0'='2'.
这个语句综合起来,其实就是输出n%10的相应字符格式而已.
以n=12为例,printf("%-5c",n%10+'0')的输出结果就是2____
再问: 不加这个难道输出不是'2'么 求教
再答: 这样才拐弯抹角啊!这样不正是那些无聊出题者的本意吗?要是我出题我就狠狠出一堆指针题郁闷死他们,让他们一样脑细胞死一堆。 '0'就是ASCII表里值为48,控制字符0的那个0。
再问: 那个我还是不太懂 你就直接告诉我这里'0'的作用吧
再答: '0'的作用就是得到数字0-9在ASCII表里头的基础值48,这样 n%10得到的数 加上48 也就得到 这个数在ASCII表里头的值。比如n=12,n%10=2,但是这是整型2,加上48得到50,50就是数字2在ASCII表里头对应的ASCII值,通过输出%c就能得到字符型的2。
再问: 你的意思是n本来是int型的 这样一转就成为char型了吧
再答: n%10还是int型,只不过是转换后输出其对应的字符形式而已
 
 
展开全文阅读
剩余:2000
上一页:为什么只选B
下一页:第8题练习