位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言基础知识—类型的自动转换和强制转换

提问人:ylm发布时间:2020-09-25

当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算。转换优先级为:

char < int < float < double

即左边级别“低“的类型向右边转换。具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;若在表达式中优先级最高的数据是float型,则此表达式中的其他数据均被转换成float型,且计算结果也是float型。

在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。

除自动转换外,还有强制转换,表示形式是:

( 类型 )(表达式); 例:(int)(a+b)

讨论:当a值赋值为3.4,b值赋值为2.7,(int)(a+b)和(int)a+b的值分别为多少?

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部