use*_*439 -2 c data-structures
在用于评估后缀表达式的代码中,写入了将字符作为整数传递,我们将其写为character - '0'.这有什么意义?
这是因为charater - '0'给出了字符的整数值.C标准指出:
在源和执行基本字符集中,
0上述十进制数字列表中每个字符的值应大于前一个值的值.
使用上述事实,可以通过上面的表达式计算0to 之间的字符的整数值9.
char character = '5';
int val = character - '0';
Run Code Online (Sandbox Code Playgroud)
现在,如果48是代码0那么
'5' - '0' = 53 - 48 = 5 //
Run Code Online (Sandbox Code Playgroud)
这是将数字字符转换为数字的快速方法.它基于以下事实:字符编码为数字,C标准要求表示数字的字符必须是连续的(请参阅下面的@ EricPostpischil的评论).
因此,如果48是对应的代码'0',那么49将是'1',依此类推.因此,您可以将'1'(字符)转换为1(整数)'1' - '0' = 49 - 48 = 1.