强制类型转换
概念:将某种类型的数据转化我们需要的数据类型,注意强制类型转化是临时强转,不会改变本身的数据类型。
强转又分为显式强转和隐式转化
显示强转是按照我们的要求进行转化
格式:(需要转化数据类型)变量名
#include <stdio.h>
int main(){
int a = 0;
int b = 2.71;
a = (int)b; //显式强转
printf("a = %d, b = %d\n", a, b);
return 0;
}
输出
a = 2, b = 2.71
隐式强转
若是用户使用运算符两边的类型不匹配,并且用户没有显示的指定匹配那种类型。系统
会默认触发隐式的强转,强转规则如下:
思考下面代码运行结果
int a = -100;
unsigned int b = 3;
if((a + b) > 0)
{
printf("a + b > 0\n");
}else{
printf("a + b <= 0\n");
}
结果为:
a + b > 0
因为a,b两个变量类型不匹配,进行加法运算时编译器会触发隐式类型转换,将int型转为unsigned int,所以结果为a + b > 0