第2个回答 2012-09-18
首先要理解C语言中 "字符即数字", 但是这并不是说'1' == 1, 字符是数字到符号的一种映射(即ASCII码表给出的映射关系. 当然还有其他很多映射表, 比如UTF-8, 这种映射就叫做字符编码),
比如:
64 <===> 'A', 96 <===>'a', '1'<===>49.
所以尽管我们给的参数是'1', 但实际上计算机中存储的值是49, '1'只是这个数字在屏幕上的样子.
实际上,你可以传给putchar()任意数字,只要在其参数类型(char, 8bit)所表示的范围内( -128~127, 或0~255), 只要可以找到相应的映射字符, 就可以打印出该字符.
所以传给putchar()的参数是49或'1'没有本子区别, '1'只是49的另外一种表示方法. 同理, 如果参数是'1'+1<===>49+1=50 <===> '2', 'A'+1<===>64+1=65<===>'B'
甚至'1'+'A' <===> 49+64= 123 <===>'一个一定义的字符,但是可能在屏幕上显示不了,具体参照ASCII表'.
你的例子中 A:0~5, 参数一次是'A'+0, '1'+1, 'A'+2, '1'+3, 'A'+4, '1'+5, 即字符A2C4E6
明白了么?本回答被提问者和网友采纳