【发布时间】:2016-04-22 06:53:05
【问题描述】:
void push(float[],float);
这里,st[] 是浮点数据类型堆栈,exp[] 是存储后缀表达式的 char 数据类型数组。
push(st,(float)(exp[i]-'0'));
但我无法弄清楚(exp[i]-'0') 部分的用途。为什么要减去'0'?
【问题讨论】:
-
将
charASCII码转换为int -
@Sourav Ghosh,假设我们使用 if (isdigit(exp[i] )) 之类的“if 条件”,那么我们还需要在 if-body 中进行转换吗??
-
是的,因为char的值仍然是一个代码,而不是实际数字的值。
-
我的意思是:if(isdigit(exp[i])) { push(st,(float)(exp[i])}; 是正确的还是需要转换?
-
我想我已经回答了。是的,它仍然需要转换。