c - 在 C 中,要将字符转换为整数是否需要进行类型转换

标签 c typecast-operator

在 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/

相关文章:

c++ - 未调用类型转换运算符

C指针在循环中变为NULL

c - 在 C 中用 if 语句填充二维数组

c - 是否有用于网络 session 状态检查的 C 库?

c++ - 根据数字模板参数有条件地编译转换运算符

C++ 类型转换重载

C - pthread条件变量

c - 在 C 中加载共享内存

c - 将 char * 类型转换为 int *