关于c语言int,float类型相加隐式转换

低→高:
char→short→int→unsigned→long→double
float→double

按理说float,int类型相加应该自动转换为double类型,因为都是向上转换的。
但如以下代码,结果实际输出为4
int a = 1; float b = 1.0; printf("%d\n",sizeof(a+b));
原因是K&R编译器 (二三十年前最早的C语言) 上是double,C89以后都是float。

c语言中,可以使用类型转换符将int类型转换float类型。在实现过程中,我们可以使用强制类型转换(casting)和隐式类型转换(implicit conversion)两种方式。 强制类型转换通常表示将一种类型转换为另一种类型的精确方式。在C语言中,强制类型转换可以在数据类型之前添加具有新数据类型名称的括号来实现。例如,如果我们要将整变量x转换为浮点变量y,则可以使用以下代码: float y = (float) x; 这将强制将整数转换为浮点数。在此过程中,C编译器将在整数之前添加“0”比特来补齐小数位,将其转换为浮动点。 另一方面,隐式类型转换是在不使用强制类型转换符的情况下自动进行的。编译器会自动转换数据类型以便它们可以与其他表达式相匹配。例如,如果我们将一个整数和一个浮点数相加,则C编译器将自动将整数转换为浮点数以便可以执行加法操作。在这种情况下,代码可以如下所示: int x = 5; float y = 3.14; float z = x + y; 在此示例中,x被隐式转换为浮点数并添加到y中,结果赋给z。在运行时,C编译器将z视为浮点。 综上所述,int转换float可以使用强制类型转换隐式类型转换。在使用强制类型转换时,我们可以使用强制类型转换符将整数转换为浮点数,而在使用隐式类型转换时,则可以直接对整数和浮点数执行计算操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值