您的位置:首页 > 其它

(笔记)不同数据间的混合运算

2016-10-21 19:21 239 查看
初始化不是在编译阶段完成的(静态存储变量和外部变量的初始化是在编译阶段完成)
而是在程序运行时执行本语句时赋初值的,相当于一个赋值语句。例如:
int a=3;
相当于:
int a;
a=3;
又如:
int a, b, c=5;
相当于:
int a, b, c;
c=5;


整型(包括int、short、long)和浮点型(包括float、double)可以混合运算。
字符型数据可以与整型通用,因此,整型、浮点型、字符型数据间可以混合运算。

例如:
10+’a’+1.5-8765.1234*’b’
//最后表达式的类型是double类型  格式申明符:lf

规定:在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按下图所示。




说明:
1. 运算前,char和short类型的数据强制转换成int类型
2. 运算前,float类型的数据强制转换成double类型(有效位被扩大,运算时精度提高)
3. 从下往上,表示数据数据转换的优先级。
比如:int 和 doubule 运算时统一将它们的数据类型转换成double


例题:
求下面算术表达式的值
(1)x+a%3*(int)(x+y)%2/4,设x=2.5, a=7, y=4.7

//先算(x+y) = 7.2  强制转换后 7
// * % 优先级相同,算数运算符的结核性:从左到右
//a % 3 * 7 % 2 / 4 = 0
//x 为 float型,运算时先转化为double。
// x + 0 = 2.5
//最后的格式类型为double类型,格式声明符lf
(2)(float)(a+b)/2+(int)x%(int)y,设a=2, b=3, x=3.5, y=2.5

//(float)(a+b)/2,运算后为double类型
//(int)x%(int)y = 1
//2.5 + 1 = 3.5 格式为double型,格式声明符
4000
lf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: