关于字符操作的查询

时间:2010-05-10 07:15:24

标签: c character

请解释以下代码..

   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

感谢名单。

3 个答案:

答案 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