“0”在C中的含义是什么?

时间:2014-01-20 13:58:24

标签: c data-structures

在评估后缀表达式的代码中,写入了将字符作为整数传递,我们将其写为character - '0'。这有什么意义?

2 个答案:

答案 0 :(得分:6)

这是因为charater - '0'给出了字符的整数值。 C标准说:

C11 5.2.1 3:

  

在源和执行基本字符集中,上述小数位数列表中0之后的每个字符的值应大于前一个值的值。

使用上述事实,可以通过上述表达式计算09之间的字符的整数值。

char character = '5';
int val = character - '0';   

现在,如果480的代码,那么

'5' - '0' = 53 - 48 = 5   // 

答案 1 :(得分:5)

这是将数字字符转换为数字的快捷方式。它基于以下事实:字符编码为数字,C标准要求表示数字的字符必须是连续的(请参阅下面的@ EricPostpischil的评论)。

因此,如果48是与'0'对应的代码,那么49将是'1',依此类推。因此,您可以'1'1(字符)转换为'1' - '0' = 49 - 48 = 1(整数)。