1运算符分类
- 算数运算符
- 关系运算符
- 逻辑运算符
- 位操作运算符
- 赋值运算符
- 条件运算符
- 逗号运算符
- 指针运算符
- 求字节运算符
- 特殊运算符
2运算符的优先级
运算符的优先级分15等级,1级最高,15级最低。
同一优先级的运算符,运算次序由结合方向所决定
!>算术运算符>关系运算符>&&>||>赋值运算符
表达式中,优先级高的的先于低的运算,优先级相同的时候,按照运算符的结合性运算。
3运算符的结合性
左结合:(算数运算符的结合方向)运算对象先与左面的运算结合。
右结合:自右至左,例如赋值运算符。
4表达式及分类
表达式:将同类型的数据(常量,变量和函数等)用运算符按照一定规则连接起来的式子。表达式一定有返回值。表达式后加分号,构成表达式语句。
分类:算术表达式、关系表达式和逻辑表达式。
5常用运算符
(1) 算数运算符(左结合):+ - * / %
两个整数相除的结果为整数
两数中有一个数是float或double型数时,结果是double型,因为所有float都按double型运算
(2)赋值运算符(右结合) =
作用:将一个数据赋给一个变量,也可以将一个表达式的值赋给一个变量。
变量 = 表达式/数据
(3) 复合赋值运算符 +=、-=、*=、/=、%=、&=、|=、^=、>>=、<<=
先运算后赋值。
(4) 自增自减运算符 i++; i–;++i;–i;
i++和++i的区别:
前缀表达式 ++i作用和i=i+1一样
先让变量i自增,之后用自增之后的i值作为表达式的值
后缀表达式 i++
先用i值作为表达式的值,之后i的值再自增
(5) 逗号运算符
作用:把两个表达式连接到一起,形成逗号表达式。
求值过程:分别求每个表达式的值,以最后的表达式的值作为整个表达式的值。
逗号表达式不注重求值的结果,注重求值过程中哪些变量的值发生了变化。
(6) 关系运算符(左结合)>、<、>=、<=、==、!=
所有的数值都有真假性,非0即真,只有0为假。
关系运算符的返回值只有0和1.
(7) 逻辑运算符 (或)||、&&(与)、(非)!
或(左结合):两个表达式只要有一个真值,整个表达式的值就为真。
与(左结合):两个表达式的值都为真,整个表达式的值才为真。
非(右结合):非真即假,非假即真。
(8) 三目运算符(右结合) ? :
条件表达式? 表达式1:表达式2
如果条件表达式的值为真,表达式1的值为整个表达式的值。
如果条件表达式的值为假,表达式2的值为整个表达式的值。
注意:?和:是成对出现。
int max(int a,int b)
{
return a>b?a:b;
}