各类数值型数据之间的混合运算
变量的数据类型是可以转换的,有两种转换方法:一、自动转换;二、强制转换。
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成;其遵循以下规则:
1.若参与运算量的类型不同,则先转换成同一类型,然后运算;
2.转换按数据长度增加的类型方向进行,以保证精度不降低;若int型和long型运算时,先将int行转换成long型后在运算;
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,在运算;
4.char型和short型参与运算时,必须先转换成int型;
5.在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转化为左边量的类型。若右边量的数据类型长度比左边长时,将丢失一些数据,这样会降低精度,丢失的部分四舍五入。
eg:
强制类型转换
算术运算符和算术表达式
基本的算术运算符
注:左结合性:把后面的值赋到左边。
eg:
#include <stdio.h>
int main()
{
printf("7?2=%d……%d\n",7/2,7%2);
}
第一个 %d 表示7/2的整数部分;
第二个 %d 表示7/2的余数部分,用7%2表示;
赋值运算符和赋值表达式
简单赋值运算符记作“=”;由等号连接的式子称为赋值表达式;
其一般形式为:变量=表达式
eg:
x=a+b
w=sin(a)+sin(b)
y=d+g+k
赋值表达式的功能是计算表达式的值再赋予左边的变量,赋值运算符具有右结合性;
即:
a=b=c=6
等价于
a=(b=(c=6))