初学者的问题)如何永久更改变量的类型?

时间:2019-03-16 17:27:25

标签: c

我发现了

char p = 1; 
p = (int)p; 
p = 0x12345678;

使p为'0x78',因为与我的猜测不同,第二行中p的类型未更改为int。如何在不声明新变量的情况下更改p的类型本身?

2 个答案:

答案 0 :(得分:1)

对象永远具有C语言的类型。相反,您通常可以将其值cast设置为另一种类型。在您的示例中,(int)p的{​​{1}}值被转换为int,但是原始的p变量将具有相同的类型。

答案 1 :(得分:0)

切换到具有所需类型的其他变量名称。

char p = 1; 
int q = (int)p; 
q = 0x12345678;

我知道没有其他解决方法。

作为旁注,如果要确保可移植性,则在将char转换为整数或反之时要小心。 C标准可确保例如从“ 0”到“ 9”将是连续的且递增的,但不能保证其值。