首先运算符可以大致分为三类: 算术运算符、关系运算符、赋值运算符。
1. 我们先来看一下算术运算符都有哪些?
算术运算符有: “+ - ++ -- * / % ”。而这些算数的优先级又是怎么样的?
我们先来理解一下什么是单目操作符,什么是双目操作符。单目操作符就是只需要一个数便可与其进行操作运算。例如 “-5”这个“-”只需要一个数(5)便可操作。同理双目操作符也就是需要两个数才可以进行操作运算。如加号“+”,a + b,这个加号需要俩个数才能执行。三目操作符则需要三个操作数才能进行运算操作的运算符。
接下来分出单目运算符和双目运算符。单目操作符:+ - ++ -- (注意此单目操作符中的 + 和 - 表示的是正负号)
双目操作符:* / % +(加号) -(减号)。
大家要明白C语言中的单目操作符的优先级是最高,它优先于双目、三目操作符。
所以 优先级:“ + - ++ -- ” 大于 “ * / % +(加号) -(减号)”
如下图列出优先级的高低,同一行优先级相等。
单目操作符的结合性是从右到左的,看例子: -i++,试着判断 i是先和 ++ 结合还是 - 呢?
因为单目操作符的结合性是从右到左的,可以理解为表达式是从右边开始执行。所以 i先和++结合,即 -(i++)。而双目操作符的结合性是从左到到右,想想我们的小学数学加法减法,是不是从左到右运算的呢?当然是啦!
2. 关系运算符:
关系运算有: < <= > >= == != (注意想"<="这样的运算符中间是不可以用空格隔开的!)
下面来分这些运算符一下优先级:如图:这些关系运算符没有必要去刻意去记,你记住反正就是做为判断的操作符就得了。
3.赋值运算符:
先来说一下这些运算操作符是什么,如 “ += ” 看式子: a += x + y; 这个式子就相当于
a = a + ( x + y ) ; 同样的 a -= x + y ,就相当于 a = a - (x + y);其他赋值运算符也同理;
下面来比较一下运算符的优先级: 算术运算符 > 关系运算符 > 赋值运算符。