减去' 0'是什么意思?从C中的变量?

时间:2016-01-16 21:00:01

标签: c stack

void push(float[],float);

这里,st[]是浮点数据类型堆栈,exp[]是存储后缀表达式的char数据类型数组。

  push(st,(float)(exp[i]-'0'));

我无法弄明白(exp[i]-'0')部分的目的。我们为什么要减去'0'

1 个答案:

答案 0 :(得分:6)

一个字符基本上只是一个整数,其值是字符的编码。

在最常见的编码方案ASCII中,例如,字符48'3',以及例如51的值someChar'3'。现在,如果我们的变量someChar - '0'包含字符51 - 48,而您3,则与'0'相同,这将导致值{{} 1}}。

因此,如果您从某处读取数字作为字符,则减去{{1}}以获取该数字的整数值。

这也适用于其他编码,而不仅仅是ASCII,因为C规范说所有编码都必须具有连续顺序的数字。