您当前的位置:《c语言程序设计》听课笔记:06
《c语言程序设计》听课笔记:06
eg:i=3
j=i++*++i+i--*--i
j=3*4+3*2=18
先同时运行++i和--i
e)混合运算中的类型转换
当运算符两边的操作数类型不同时,其中一个要进行类型转换和另一个保持一致后,才能进行运算
转换过程中遵循就高不就低的原则:即级别低的操作数先转换成和级别高的操作数类型一致,然后再运算,结果的数据类型和级别高的一致(字节多级别高,这样定义不会损失精度)
具体关系:高   double<------float
                  |     long
                  |     unsigned
                 低   int <------char,short
强制类型转换表达式(高级别向低级别转换时使用,低级别向高级别转换由系统自动完成):(类型)(表达式),此表达式只转换离自己最近的数,表达式可不带括号
ps:使用强制类型转换表达式时,若浮点型向整型转化,小数点后的数直接舍去,不存在四舍五入
类型转换也发生在赋值运算符的两边,且不管赋值运算符右边的表达式的结果类型如何,一律转换为左边变量的类型,然后再赋给左边的变量
类型的提升:将低级类型转换成高级的(增加二进制位),精度不损失
类型的下降:将高级类型转换成低级的(截断和舍入二进制位),一般会造成精度的损失
f)逗号表达式
结合方式:由左至右
优先级最低,从第一个表达式开始计算,一直到最后一个表达式,且逗号表达式的值为最后一个表达式的值,但不能前面的表达式不求而直接求最后一个
eg:(i=3,i++,++i,i+5)   i=5,整个表达式的值是10
 
 
 
 
 
 
 
 
 
 
 
收藏状态
收藏本课程的同学
相关课程