C语言的运算符范围很宽、类型丰富,除了控制语句和输入输出以外,几乎所有基本操作都作为运算符处理。
认识运算符,就要掌握每一种运算符号的 功能、优先级、结合性
C的算术运算符有三类:
1. 基本算术运算符
2. 强制类型转换运算符
3. 自增、自减运算符
基本算术运算符有五个: + (加) - (减) * (乘) / (除) % (求余)
注意事项:
1. “ % ” 运算符号的运算对象必须为整型数据 ,如 7%3;
2. 两个整数相除取整数(向零取整);
3.参加+、-、*和/运算的两个数中有一个为实数或双精度数,则结果必为double型。
例如:2. 5%3 会出错 2/3的结果为0
5/4的结果为1 (-5)/4的结果为-1
优先级: 在括号和单目运算符之后
如: a-b*c相当于a-(b*c)
结合性: 左结合性(自左向右)
当一个运算对象两侧的运算符的优先级相同时,要考虑其结合性。
如: a-b+c 48+56%7/2*8
如果一个运算符的两侧的数据类型不同,先自动进行类型转换,使两者具有同一个类型,然后进行运算。
强制类型转换运算符为单目运算符,使用的形式为: (类型名)(转换对象)
功能:将数据类型进行强制转换。
如: (double)a (int)(x+y) (float)(5%3)
注意事项:(1)类型名一定要用括号括起来。
(2)在进行强制类型转换时,得到一个所需类型的中间量,原来变量的类型和值都不变。
运算符:++(自增) - -(自减)
功能:使变量的值自增1或自减1(常用于循环语句中)。
++i, - -i (在使用i之前,先使i的值加1(减1))
i++, i- - (在使用i之后,使i的值加1(减1))
优先级:单目运算符,优先级仅次于括号类。
结合性:自右向左,具有“右结合性”。
1、自增运算符(++)和自减运算符(--)只能用于变量,不能用于常量或表达式,如:5++或(a+b)++都是不合法的。
2、自增运算符(++)和自减运算符(--)很容易出现一些歧义性和搞混的问题,如:i的原值为3,下列表达式的值是多少?
(i++)+(i++)+(i++)
有的系统得12,有的系统得9;i的值为6。
3、在一个表达式中相邻出现两种运算符时,如:i+++j,是理解为(i++)+j呢?还是理解为i+(++j)呢?C编译系统将其解释为(i++)+
算术表达式:用算术运算符号将运算对象按C语言的语法规则连接起来的式子叫做算术表达式。
运算对象:常量、变量、表达式、函数均可以做运算对象。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。