这里的意思是'0':push(symb-'0');

时间:2019-03-22 20:10:52

标签: c++

我编写了用于后缀评估的代码,直到在互联网上找到答案之前,我一直存在逻辑错误,但我不理解。

我被写了

    if (!st.is_operator(symb))
    st.push(symb);

然后我得到错误的结果,但是当我这样写

    if (!st.is_operator(symb))
 st.push(symb-'0');

为什么正确?

1 个答案:

答案 0 :(得分:0)

看来symb是一个包含数字的ASCII字符。通过减去其中的0字符,您可以将数字转换回典型值。

'0' - '0' = 0
'6' - '0' = 6
'9' - '0' = 9