c语言如何定义运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。它是构造C语言表达式的工具 。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。
本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。
c语言复合运算符有哪些
在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符。下面是关于C语言复合赋值运算符的'相关介绍!
复合赋值运算符就是在赋值符“=”之前加上其它二目运算符可构成。比如大家可能最常看到这样的语句:
n += 5;
这个语句相当于:
n = n + 5;
C语言中有如下的复合赋值运算符:
n += a; 相当于n = n + a;
n -= a; 相当于n = n - a;
n *= a; 相当于n = n * a;
n /= a; 相当于n = n / a;
n %= a; 相当于n = n % a;
n <<= a; 相当于n = n << a;
n >>= a; 相当于n = n >> a;
n &= a; 相当于n = n & a;
n ^= a; 相当于n = n ^ a;
n |= a; 相当于n = n | a;
注意:如果右边不只是一个变量而是一个表达式,则需要看成一个整体.
比如:
n /= a * b + c >> d 相当于 n = n / (a * b +c >> d),右边作为一个整体加括号。
即使是有同样优先级的也需要,请看下面的情况:
int n = 3;
int m = 13;
n *= 12 / m;
如果不加括号而是直接写成另外一种:n = n * 12 / m,显然这个计算结果大于0,而上面的为0。
复合运算要注意以下:
复合运算符左边必须是变量;
复合运算符右边的表达式计算完成后才参与复合赋值运算。复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。
复合赋值运算的优先级符合C语言运算符的优先级表,结合方向为从右到左。
1. C语言复合运算符有+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=。
2. 复合运算符是将运算符和赋值操作符结合在一起,可以简化代码,提高效率。
3. 复合运算符可以用于任何基本数据类型,如int、float、double等,也可以用于指针类型。
在实际编程中,复合运算符经常被使用,可以提高代码的可读性和可维护性。
复合赋值运算符(compound assignment operator)是由赋值运算符“=”与其他运算符结合而成的。先决条件是“=”右方的源操作数必须有一个和左方接收赋值数值的操作数相同。
c语言中运算符的“结合方向”到底是怎么回事啊
优先级和结合性C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。
而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。
这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。
最典型的右结合性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。运算符的种类C语言的运算符可分为以下几类:
1.算术运算符用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。5.赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。6.条件运算符这是一个三目运算符,用于条件求值(?:)。7.逗号运算符用于把若干表达式组合成一个表达式(,)。8.指针运算符用于取内容(*)和取地址(&)二种运算。9.求字节数运算符用于计算数据类型所占的字节数(sizeof)。10.特殊运算符有括号(),下标[],成员(→,.)等几种。
还没有评论,来说两句吧...