请解释以下代码..
printf("%c\n",0+'0'); --> returns 0
printf("%c\n",1+'0'); --> returns 1
printf("%c\n",0+'1'); --> returns 1
printf("%c\n",1+'1'); --> returns 2
感谢名单。
答案 0 :(得分:3)
查看ASCII table。 '0'有代码48.所以'0'+ 1产生49,即'1'。所以每个角色实际上都是一个整数。你添加另一个整数,然后,因为你在printf中指定“%c”,你强制它将其视为一个字符。他检查了他的ASCII表,经过一番考虑,他决定将输出打印到屏幕上。
答案 1 :(得分:1)
'0'
给出ASCII
的{{1}}值0
。为此,您需要48
添加0
。然后打印48
作为提供48
类似地,下一个将0
添加到1
以提供48
,当打印为char时,49
答案 2 :(得分:1)
感谢%c
所有人都打印出与论证等价的字符。
printf("%c\n",0+'0');
将零值添加到字符零的ASCII值,即48:48 + 0 = 48
尝试printf("%d\n", '0');
获取ASCII值。
printf("%c\n",1+'0'); // 1 + 48 = 49 which is the character `1`
printf("%c\n",0+'1'); // 0 + 49 which is again `1`
printf("%c\n",1+'1'); //left as an exercise