在C语言中,要将字符转换为整数,必须进行类型转换
在C语言中,当我们最终要从一个数字字符中减去字符0以得到它在整数中的等价数字时,是否有必要将字符类型转换为整数 以下示例的目的是将字符5转换为整数中的等效数字在C语言中,要将字符转换为整数,必须进行类型转换,c,typecast-operator,C,Typecast Operator,在C语言中,当我们最终要从一个数字字符中减去字符0以得到它在整数中的等价数字时,是否有必要将字符类型转换为整数 以下示例的目的是将字符5转换为整数中的等效数字 char a = '5'; intx=a-'0'此处,通过从字符5中减去字符0得到的字符结果的十进制值将等效于字符5 inti=(int)a此处,即使在进行了类型转换之后,字符5的十进制值也将按原样分配 那么,当typecast对其操作数没有影响时,执行typecast有什么意义呢 那么,当typecast对其操作数没有影响时,执行ty
char a = '5';
intx=a-'0'
此处,通过从字符5中减去字符0得到的字符结果的十进制值将等效于字符5
inti=(int)a
此处,即使在进行了类型转换之后,字符5的十进制值也将按原样分配
那么,当typecast对其操作数没有影响时,执行typecast有什么意义呢
那么,当typecast对其操作数没有影响时,执行typecast有什么意义呢
代码的可读性(或与中指定的一致性)
顺便说一句,大多数类型转换都不会被机器翻译成任何机器代码
那么,当typecast对其操作数没有影响时,执行typecast有什么意义呢
代码的可读性(或与中指定的一致性)
顺便说一句,大多数类型转换都不会被转换成任何机器代码。转换可以是隐式的(精度不会丢失) 或明确的
int x = (int)a;
更确切地说,它是整数提升,是在操作之前完成的
int x = ((int)a) - '0';
int x = (int)a;
更确切地说,它是整数提升,是在操作之前完成的
int x = ((int)a) - '0';
< C′0字符字符已经是int,而C++中是字符。字符常量已经是类型<代码> int >代码>,所以<代码> '0' < /COD>不被推广到<代码> int >代码>,而不是<代码> char < /代码> NITPICK:“一个转换”(即“显式转换”)永远不可能是隐式的。可以隐式或显式的是“转换”。字符常量的类型已经是
int
,因此'0'
不会提升为int
,而不是char
挑剔:“转换”(即“显式转换”)永远不会隐式。隐式或显式的是“转换”。“通过从字符5中减去字符0得到的字符结果的十进制值将等效于字符5”什么?从'5'
中减去字符'0'
得到的值是5
,但字符'5'
的值是53
。“从字符5中减去字符0得到的字符结果的十进制值将等效于字符5”什么?从'5'
中减去字符'0'
得到的值是5
,但字符'5'
的值是53
。这是如何等价的?