类型转换

在c语言中的类型转换总的来说分为两大类:

1、隐式转换(自动转换)

  • 运算转换

不同类型的数据混合运算时会自动转换为同一类型,这里有一个类型的转换规则如下图:

         

              

在不同类型进行运算时,低级的数据类型将自动转换成高级的类型。值得注意的是:

  1. char,short类型在运算时必定转化为int类型
  2. float类型在运算时必定转化为double类型
  • 赋值转换

在进行赋值时,将右边的数据类型自动转化为左边的数据类型。这里有个问题就是精度丢失的问题,比如:

main()
{
  	float x = 3.6;
  	int a = x;
  	printf("x=%f,a=%d",x,a);
 } 

输出结果:
x=3.600000,a=3

int类型直接截取float的整数部分造成精度丢失。

  • 返回值转换

当某个方法有返回值时,会将返回值自动转换为方法规定的类型。比如:

int show(){
	float a = 3.3;
	return a;
}

main()
{
	if(show()==3){
		printf("yes");
	}  	
	else{
		printf("no");
	}
 } 

输出结果:
yes

 

  • 函数调用转换

在c语言中,会自动将传入方法的实参类型转化为与形参相同。比如:

int show(int a){
	if(a==1){
		return 1;
	}
	else{
		return 0;
	}
}
main()
{
	float m = 1.1;
	int result = show(m);
	printf("%d",result);
 } 

输出结果:
1

2、显示转换(强制转化)

即(类型名)表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值