C语言有哪些运算符?

Python012

C语言有哪些运算符?,第1张

下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的运算符* &->也在这里列出来了,以后再详细解释。

1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。

2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。

3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。

4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。

6、移位运算符<<和>>。左结合。

7、关系运算符<><= >=。左结合。

8、相等性运算符==和!=。左结合。

9、按位与&。左结合。

10、按位异或^。左结合。

11 、按位或|。左结合。

12、逻辑与&&。左结合。

13、逻辑或||。左结合。

14、条件运算符:?。在第 2 节 “if/else语句”讲过Dangling-else问题,条件运算符也有类似的问 题。例如a ? b : c ? d : e是看成(a ? b : c) ? d : e还是a ? b : (c ? d : e) ? C语言规 定是后者。

15、赋值=和各种复合赋值(*= /= %= += -= <<= >>= &= ^= |=)。右结合。

16、逗号运算符。左结合。

加法运算符

1、移位运算符

2、 关系运算符

3、相等运算符

4、 位与运算符

5、位异或运算符

6、 位或运算符

7、 逻辑与运算符

8、 逻辑或运算符

9、 三元条件运算符

10、 赋值运算符

12、逗号运算符

13、优先级

功能介绍:

1、赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示;

2、算术运算符在C语言中有两个单目和五个双目运算符;

3、逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值;

4、关系运算符是对两个表达式进行比较,返回一个真/假值;

5、自增自减运算符,这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1;

6、赋值运算符,还有一类C/C++独有的复合赋值运算符。它们实际上是一种缩写形式,使得对变量的改变更为简洁;

7、条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回两外两个表达式中的一个;

8、逗号运算符在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值;

9、优先级和结合性,这些运算符计算时都有一定的顺序,就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。