C - 将char转换为int

Ahm*_*med 0 c type-conversion

我知道要将任何给定的char转换为int,这个代码是可能的[除了atoi()]:

int i = '2' - '0';
Run Code Online (Sandbox Code Playgroud)

但是我从来没有理解它是如何工作的,'0'的意义是什么,我似乎没有在网上找到任何解释.

提前致谢!!

Ale*_*lex 7

在C中,字符文字具有类型int.[ Character Literals/IBM ]

在您的示例中,数值'0'为48,数值'2'为50.当'2' - '0'您得到时50 - 48 = 2.这适用于从0到9的ASCII数字.

请参阅ASCII表以获得更好的图片.

编辑:感谢@ouah进行更正.