繁体   English   中英

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

[英]What does it mean to subtract '0' from a variable in C?

void push(float[],float);

这里st[]是float数据类型的栈, exp[]是char数据类型的数组,存放后缀表达式。

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

不过,我无法弄清楚(exp[i]-'0')部分的目的。 为什么我们要减去'0'

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

在最常见的编码方案ASCII中,字符'0'的值是48 ,而字符'3'的值是51 现在,如果我们有一个包含字符'3'的变量someChar并且你执行someChar - '0'它与执行51 - 48相同,这将导致值3

因此,如果您从某处读取一个数字作为字符,则减去'0'以获得该数字的整数值。

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

请注意,此“技巧”不能保证对任何非数字字符都有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM