End*_*dra 1 c stack
void push(float[],float);
这里st[]是浮点数据类型堆栈,exp[]是存储后缀表达式的char数据类型数组.
st[]
exp[]
push(st,(float)(exp[i]-'0'));
我无法弄清楚(exp[i]-'0')部分的目的.我们为什么减去'0'?
(exp[i]-'0')
'0'
Som*_*ude 6
一个字符基本上只是一个整数,其值是字符的编码.
在最常见的编码方案中,ASCII,例如字符的值'0'是48,和例如的值'3'是51.现在,如果我们有一个someChar包含该字符的变量'3',那么someChar - '0'它与执行51 - 48该变量的变量相同3.
48
'3'
51
someChar
someChar - '0'
51 - 48
3
因此,如果您从某处读取一个数字作为字符,则减去'0'该数字的整数值.
这也适用于其他编码,而不仅仅是ASCII,因为C规范说所有编码必须具有连续顺序的数字.
归档时间:
10 年,1 月 前
查看次数:
152 次
最近记录: