C语言中的类型转换可以分为两种:
隐式转换中的规则有:
①窄的向宽的转变;
②unsigned 同类型无符号比有符号宽
同类型的转换例如:
int a=-10;
unsigned int b=10;
if(a>b)
printf("a>b");
else
printf("a<b");
不同类型的转换例如:
int c=-10;
unsigned short d=10;
if(c>d)
printf("c>d");
else
printf("c<d");
③整型起
④最终的数据类型以“左边”为主
char a=-1; //-1
char b=255; //-1
unsigned char c=-1; //255
unsigned char d=255; //255
①
int e=a; //-1
int f=b; //-1
int g=c; //255
int h=d; //255
②
unsigned int i=a; //2^31
unsigned int j=b; //2^31
unsigned int k=c; //255
unsigned int m=d; //255
数据类型转换的本质原因:
1、窄变宽:左边补符号位
2、宽变窄:保留低数据