在 C 中,当我们最终要从数字字符中减去字符 0 以获得整数中的等效数字时,是否有必要将字符类型转换为整数?
以下示例的目的是将字符 5 转换为整数中的等效数字。
char a = '5';
int x = a - '0';
这里字符5减去字符0得到的字符结果的十进制值将等于字符5。
int i = (int)a;
这里字符 5 的十进制值将在进行类型转换后按原样分配。
那么,当类型转换对其操作数没有影响时,进行类型转换有什么意义呢?
最佳答案
转换可以是隐式的(不会丢失精度)
int x = a;
或显式
int x = (int)a;
更准确的说是整数提升,在运算之前完成
int x = ((int)a) - '0';
在 C 中 '0' 字符字面量已经是 int,而在 C++ 中它是一个 char。
关于c - 在 C 中,要将字符转换为整数是否需要进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44341115/