第五章
除法运算符:/
整数除法会截断计算结果的小数部分(丢弃整个小数部分),不会四舍五入结果
混合整数和浮点数计算的结果是浮点数
运算符的优先级
优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。逻辑运算符中“逻辑非 !”除外
同级运算先运算什么取决于语言的实现者,依硬件条件决定。特别注意使用printf()函数打印多个同级运算时候的情景,结果是无可预料的。
++运算符
前缀:q=2*++a//a递增1,然后2a 结果赋于q
后缀:q=2a++//首先,2a,赋予q,a递增1
注意递增运算符只能影响一个变量,(xy)++无效
表达式
由运算符和运算对象组成,重要特性是表达式都有一个值
4
-6
4+21
a*(b+c/d)/20
q=5*2
x=++q%3
q>3
语句
分号结尾,可以改变值或调用函数
legs=4 //表达式
legs=4;//语句
;//空语句
8;//什么也不做
3+4;//什么也不做
x=25;
++x;
类型转换
自动转换与强制转换
整型和实型数据可以混合运算,另外字符型数据和整形数据可以通用,因此不同数据类型之间可以混合运算。
例如:表达式10 + ‘a’ + 1.5 - 8765.1234 * 'b’是合法的。
a.自动转换时数据按长度增加的方向进行,例如int转换为long型最计算,float转换为double计算,char转换为int,最终得到一个double的结果。
赋值运算时右边的类型会转换为左边的类型,若左边的类型数据长度比右边短,则将丢失一部分数据,丢失的部分四舍五入向前舍入,这样会降低精度,这样是截断型的转换。
b.强制类型转换
(类型名)强制类型转换运算符将其右侧转换成圆括号中指定的类型
(float)9将整数9转换为浮点数9.0