C语言运算符_03

·运算符的优先级:C语言中,运算符的优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在同一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符条件运算符赋值运算符
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。
 
自增自减运算符:
自增1运算符:“++”,其功能是使变量的值自增1;
自减1运算符:“--”,其功能是是变量的值自减1;
自增1、自减1运算符均为单目运算符,都具有右结合性(自右往左)。
有以下几种形式:
++a  a自增1后再参与其他运算;
--a    a自减1后再参与其他运算;
a++  a参与其他运算后,再自增1;
a--    a参与其他运算后,再自减1;
1 // 例如:
2     int a, b;
3     a = 5;
4     b = a ++;
5     printf("b1 = %d\n", b);
6     b = ++ a;
7     printf("b2 = %d\n", b);

打印结果:b1 = 5     b2 = 7

复合的赋值运算符:在赋值运算符“=”之前加上其他二目运算符可构成复合赋值符。如:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、!=。
例如:a += 5;    等价于 a = a + 5;
     x *= y + 7;  等价于 x = x * (y + 7);
     r %= p;    等价于 r = r % p;
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。
 
 版权声明: 本文由 【kingdev】  原创出品,欢迎转载,转载时请注明出处!
posted @ 2016-03-02 13:40  Kingdev  阅读(301)  评论(0编辑  收藏  举报