为何putchar(1+'0')输出'1'而非10?putchar函数输出疑问
为什么putchar(1+'0')输出'1'而非'10'?
putchar的核心功能是输出单个字符,它接收的参数是字符的ASCII码值,只会把这个数值对应的ASCII字符打印出来,根本不处理多字符的数字输出。- 先算
1+'0'的实际值:字符'0'的ASCII码是十进制48,1+48=49,而ASCII码49对应的字符就是'1',所以putchar(49)自然输出单个字符'1'。 - 至于
putchar('0')能正常输出'0',是因为'0'本身就是ASCII码48,putchar直接把这个码值转换成对应字符输出,完全符合它的工作逻辑。 - 你预期输出"10"是搞错了函数用途,要输出数字10的字符串形式,得用
printf("%d", 10),或者分两次调用putchar('1')和putchar('0')。
内容的提问来源于stack exchange,提问作者ElormCodes1
相关产品推荐
相关产品推荐

