C语言----运算符及表达式

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;   
}  

你可能感兴趣的:(linux)