Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,要将字符转换为整数,必须进行类型转换_C_Typecast Operator - Fatal编程技术网

在C语言中,要将字符转换为整数,必须进行类型转换

在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

在C语言中,当我们最终要从一个数字字符中减去字符0以得到它在整数中的等价数字时,是否有必要将字符类型转换为整数

以下示例的目的是将字符5转换为整数中的等效数字

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';

0字符字符已经是int,而C++中是字符。

转换可以是隐式的(精度不丢失)< /p> 或明确的

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
。这是如何等价的?