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运算符:“--”,其功能是是变量的值自减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】 原创出品,欢迎转载,转载时请注明出处!