在评估后缀表达式的代码中,写入了将字符作为整数传递,我们将其写为character - '0'
。这有什么意义?
答案 0 :(得分:6)
这是因为charater - '0'
给出了字符的整数值。
C标准说:
在源和执行基本字符集中,上述小数位数列表中
0
之后的每个字符的值应大于前一个值的值。
使用上述事实,可以通过上述表达式计算0
到9
之间的字符的整数值。
char character = '5';
int val = character - '0';
现在,如果48
是0
的代码,那么
'5' - '0' = 53 - 48 = 5 //
答案 1 :(得分:5)
这是将数字字符转换为数字的快捷方式。它基于以下事实:字符编码为数字,C标准要求表示数字的字符必须是连续的(请参阅下面的@ EricPostpischil的评论)。
因此,如果48是与'0'
对应的代码,那么49将是'1'
,依此类推。因此,您可以'1'
将1
(字符)转换为'1' - '0' = 49 - 48 = 1
(整数)。