运算符与表达式
2. 赋值运算符和赋值表达式
- 简单赋值运算符
赋值符号 = 就是赋值运算符,它的作用是将一个数据赋值给一个变量
- 复合赋值运算符
在赋值运算符之前加上算术运算符或者位运算符,可以构成复合赋值运算符
运算符的优先级及结合性与简单赋值运算符相同
复合赋值运算符构成的表达式在计算时,先把左边变量的值与右边整个表达式的值进行相应的计算,然后把运算的结果赋值给左边的变量,整个复合赋值表达式的值也是左边变量的值
作用:
- 简化程序,使程序精炼
- 提高编译效率,产生质量较高的目标代码
- 赋值表达式
由赋值运算符将一个变量和一个表达式连接起来的式子。对赋值表达式求解的过程:先求赋值运算符右侧的”表达式“的值,然后赋值给赋值运算符左侧的变量
- 赋值运算符左侧必须是一个变量,而不能是常量或表达式
- 赋值运算符右侧的"表达式"可以是常量、变量或者表达式
- 赋值运算符右侧的"表达式"也可以是一个赋值表达式
- 赋值表达式也可以包含复合赋值运算符
- 赋值过程中的类型转换
如果赋值运算符两侧的类型一致,则直接进行赋值。如果赋值运算符两侧的类型不一致,但都是算术类型时,在赋值时要进行类型转换。类型转换是由系统自动进行的
不同类型数据的赋值转换规则 | ||
---|---|---|
变量类型 | 表达式类型 | 转换规则 |
char | int | 取表达式值的低8位内容 |
short | int | 取表达式值的低16位内容 |
char | float、double | 取表达式整数部分的低8位 |
int | float、double | 舍弃小数部分 |
int | char | 将对应的ASCII码值赋值给变量 |
float、double |