您当前的位置:首页 > 互联网教程

C语言运算符有哪些

发布时间:2025-05-13 19:27:16    发布人:远客网络

C语言运算符有哪些

一、C语言运算符有哪些

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

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

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

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

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

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

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

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

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

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

二、C语言逻辑运算符分别是什么

1、C语言逻辑运算符分别是:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。

2、逻辑运算符:或||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。

3、逻辑运算符:且&&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。

4、逻辑运算符:非!。在命题逻辑中,当P等于0时,!P等于1,反之亦然。

5、比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。例如,将11100011右移3比特,算术右移后成为11111100,逻辑右移则为00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。

6、运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。

三、c语言中关系运算符有哪些

1、C语言提供6种关系运算符,按优先级高低它们分别是:<、<=、>、>=、==、!=。

2、以下4种优先级相同(高)①<②<=③>④>=;以下两种优先级相同(低)⑤==⑥!=;

3、原则:先高后低,同级左结合(即从左到右)。

4、关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。**在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。

5、在C语言中,有的运算符有两个操作数,例如10+20,10和20都是操作数,+是运算符。我们将这样的运算符称为双目运算符。同理,将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。

6、常见的双目运算符有+、-、*、/等,单目运算符有++、--等,三目运算符只有一个,就是?:。

7、C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

8、当一个运算对象两侧的运算符优先级别相同时,则按运算符的结合性来确定表达式的运算顺序。关于结合性的概念在其他高级语言中是没有的,这是C语言的特点之一。

9、参考资料:百度百科-c语言运算符号