tips:右结合:运算方式从右向左。左结合同理。
1.算术表达式:用算术运算符把运算对象连起来的,符合c语言的式子。
{ 1.算术运算符:单目;只有一个操作数(像a++)。双目:有两个操作数。
2.自增与自减:像n++和++n都表示n=n+1。‘n--’也是一样的用法。顺序:++n:先执行n=n+1,再把运算过后的值赋值给n。n++:先把n作为n++的值再执行n=n+1。
注意:它是有副作用的,如下:
3.运算符的优先级和结合性:!最高,单目>双目,逗号最低,赋值次低。(!,单目运算,赋值都是右结合)。eg:-i++等价于-(i++),因为单目运算是右结合,所以先(i++)。
}
2.赋值表达式:1.类型转换2.左边只能是变量!!3.复合赋值运算:eg;a+=b。
3.关系表达式:1.关系运算符(像==,>=之类的)的优先级在算数运算符之后,赋值运算符之前。 2.最终结果落回1和0,就是逻辑值真与逻辑值假。
4.逻辑表达式:非(!)或(||)与(&&),其中非为单目运算符,优先级较高。或相当于8集合里面的并集有一真为真,与相当于集合里面的交集,有一假为假。
5.条件表达式:1.条件运算符的优先级较低只比赋值高。形式上: 表达式1?表达式2:表达式3
2.结合顺序:右结合;eg:a>b?a:c>d?c:d等价于a>b?a:(c>d?c:d)。
3.类型转换:总是向最高精度的类型转换。若表达式1为2.0,表达式2为 3,那么表达式2先变成3.0在赋值。
6.逗号表达式:1.逗号作为分隔符,用来隔开变量或函数中的参数。
2.逗号作为控制符,与多个表达式组在一起。比如:表达式1,表达式2,……,表达式n。其结果取决于最后一个表达式。
7.位运算:专门针对二进制的。
1.形式上: | 或,& 与,^异或【相同取0,不同取1】, ~取反,<<左移,>>右移。除了异或外,都差不多。
2.移位运算:a<<b表示把a向左移b位,其中b是正数,且必须小于a。移走后空出来的位用0补足。且若有符号位,则略过其不管。
8.其他运算符
{ 1.长度运算符:sizeof表示变量的字节,eg:sizeof(int)就是4.
2.特殊运算符:具有专门用途的运算符。eg:‘【】’就是专门给数组用的符号。
}