- 不同数据类型的数据间的混合运算(隐式类型转换:在运算过程中转算。)
在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。
转换规则:
横向向左的箭头表示必定的转换,如字符数据必定先转换为整数,short 型转换为int 型,float型数据在运算时一律先转换成双精度型,以提高运算精度(即使是两个 float型数据相加,也先都化成 double 型,然后再相加)。
纵向的箭头表示当运算对象为不同类型时转换的方向。例如 int 型与 double 型数据进行运算,先将 int 型的数据转换成 double 型,然后在两个同类型(double 型)数据间进行运算,结果为 double 型。
2. 强制类型转换
(类型)(表达式) //将表达式的数据类型转换为括号中的数据类型
(double)a //将a转换成double类型
在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型 未发生变化。
若已经定义a的数据类型为int,进行强制类型转换后,得到一个double型的中间变量,而a的类型不变。
3. C语言运算符
C 语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理。
4.基本的算数运算符
+ (加法运算符)
- (减法运算符)
* (乘法运算符)
/ (除法运算符)
% (求余运算符)
++ (自增运算符) 使变量的值增1
-- (自减运算符) 使变量的值减1
a++与++a的区分:
a = 2;
b = a++; //将a的值2先赋给b,b的值为2,然后a自增1变为3)
b = ++a; //a的值先变为3,再赋给b,b的值为3)
注意:
自增运算符(++)和自减运算符(——)只能用于变量,而不能用于常量或表达式。
++和——的结合方向是“自右至左“。
5.运算符的优先级与结合性
运算过程中,按运算符的优先级别高低次序执行,例如先乘除后加减。如表达式a—b* C, b 的左侧为减号,右侧为乘号,而乘号优先于减号,因此,相当于a-(b* c)。
结合性:a+b-c,算数运算符的结合方向是自左至右,所以先a+b,再执行-c的运算。