c语言怎么把实型转换(C-自动也叫隐式)

小明期末考试语文89;数学97,英语85;用代码求三课的总分与平均分

int chinese =89;int math=97;int english=85;

int sum=chinese math english;//总分

double avg=(chinese math english)/3;//平均分(复习小括号的用法)

根据上次说的参与运算的两方类型必须一致, avg是double类型,右边是int类型,为什么赋值不报错,因为其进行了自动类型转换,先右边的转换成double再进行运算

参与运算(算术运算和赋值运算)的操作数和结果类型必须一致,但是运算的两方类型不一样时,如果满足一下条件会自动进行类型转换

a: 参与运算的类型必须能兼容

例如 int与 double int与float float与double 因为都是数值型的,所以可以进行转换,但是decimal与它们不能进行自动类型转换

b:转换总是从"小"向"大"进行转换

这里的"小"于"大"不是指数字大小而是指其取值范围

int 取值范围在正负20亿左右,double取值范围在10的-308次方到10的308次方,所以当参与运算的两方相遇会自动向double转换,其他的自己查找MSDN或者百度资料

c语言怎么把实型转换(C-自动也叫隐式)(1)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页