c语言中的类型转换(有关内存中的形态)

 需要理解的是,对一个变量进行类型转换,并不是修改这个变量的类型,而是创建了这个变量的拷贝,原本的数据类型是不变的,参与运算的是拷贝后的变量。

1、对于隐式转换(即计算机自己完成的类型转换)

对于两个变量x,y之间的运算,若他们的类型相同,则计算结果类型相同,若两者类型不同,则表达式的类型与综合性最高的部分相同。综合性排名如下(由低到高)

char
short
int
long
long long
float
double
long double

对于赋值时的转换

   注意:赋值时是等号右边的类型向等号左边的类型转换,也就意味着,并不一定是类型的提升,有可能是数据的降低(此时大多数编译器会发出警告)

2、显示转换

int i;

(float) i;//拷贝i的值,拷贝值为float型

指针同理

原文地址:https://www.cnblogs.com/sjbas/p/5356943.html