C语言的运算符的优先级是什么?

Python018

C语言的运算符的优先级是什么?,第1张

1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。

( )圆括号

[ ]下标运算符号

->指向结构体成员运算符

.结构体成员运算符

2、第二级:!、~、++、--、-、(类型)、*、&、sizeof。

这一级都是单目运算符号,这一级的结合方向是从右向左。

比如出现*p++,这时*和++同级别,先算右边,再左边。

所以*p++等价于*(p++),而不是(*p)++。

3、第三级:+、-、*、/、%

这一级都是算术运算符,结合顺序和数学学习中一致的,先乘除取余数,后加减。

4、第四级:<<、>>

这是左移、右移运算符,位运算时可能需要用到。

5、第五级:<、<=、>、>=、!=、==

这些运算符也称为关系运算符,其中<、<=、>、>=高于!=、==。

6、第六级:&、^、|

这三个符号也是位运算符号,其中内优先级,&>^>|。

7、第七级:&&、||

逻辑与&&优先级大于逻辑或||。

8、第八级:?  :

也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。

9、第九级:=、+=、-+、*=、/=、%=

这些运算符也叫做赋值运算符,除此之外,>>=、<<=、&=、^=、|=这些赋值运算符也在这一级别内,结合顺序是从右往左。

10、最低级:,

逗号运算符也称为顺序求值运算符,在C语言中,运算级别最低。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

优先级与求值顺序无关。相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:指针最优,单目运算优于双目运算。如正负号。先算术运算,后移位运算,最后位运算。请特别注意:逻辑运算最后结合。

运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。操作数是被运算符用作输入的值,通常是字面值、变量或表达式。运算符可以是一元、二元或三元的,一元运算符有1个操作数,二元运算符有2个操作数,三元运算符有3个操作数。

每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。

当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。

各种运算符间的优先级

数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

C语言运算符优先级顺序如下所示:

自增运算符 ++ 和自减运算符 --,在作后缀运算符(如表达式 x++)时,较其用作前缀运算符(如表达式 ++x)时,具有较高的优先级。

+、-、* 和 &运算符记号不但可以当作一元运算符(unary operator,只需要一个操作数),也可以当作二元运算符(binary operator,需要两个操作数)。例如,* 只有一个操作数的时候,就是间接运算符(indirection operator),而有两个操作数的时候,就是乘号。

扩展资料

一个表达式可以包含多个运算符。在这种情况下,运算符的优先级决定表达式的哪部分被处理为每个运算符的操作数。例如,按照运算规则,表达式中 *、/、以及 % 的优先级比 + 和 - 高。如下列表达式:

a - b * c

相当于 a-(b*c)。如果想让操作数以不同的方式组合在一起,则必须使用括号:

(a - b) * c

如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左。例如,算术运算符和操作数的组合方式是从左到右,赋值运算符则是从右到左。