c语言中的运算符优先级高低是什么意思

c语言中的运算符优先级高低是什么意思,第1张

要了解c语言运算符优先级高低就先从通常数学上运算优先级高低说起。

通常,一个数学算式里如果有加减乘除和括号,我们会先算括号里面的式子,再算括号外面的乘除再然后才是加减。那么这时候我们说括号的优先级比加减乘除的要高,所以我们就先计算括号里的式子。然后是乘除,再然后才是加减。其中加减乘除就是运算符。所以运算符的高低决定了运算的先后顺序。

同理。C语言中的运算优先级和这一个样,只要你把运算符的优先级记住就可以了。

最高的是->(指向运算符)再到再到>>(右移运算符)再到=(赋值运算符)

c语言运算符号:

1级优先级 左结合

() 圆括号

[] 下标运算符

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

结构体成员运算符

2级优先级 右结合

! 逻辑非运算符

~ 按位取反运算符

++ 自增运算符

-- 自减运算符

- 负号运算符

(类型) 类型转换运算符

指针运算符

& 地址与运算符

sizeof 长度运算符

3级优先级 左结合

乘法运算符

/ 除法运算符

% 取余运算符

4级优先级 左结合

+ 加法运算符

- 减法运算符

5级优先级 左结合

<< 左移运算符

>> 右移运算符

6级优先级 左结合

<、<=、>、>= 关系运算符

7级优先级 左结合

== 等于运算符

!= 不等于运算符

8级优先级 左结合

& 按位与运算符

9级优先级 左结合

^ 按位异或运算符

10级优先级 左结合

| 按位或运算符

11级优先级 左结合

&& 逻辑与运算符

12级优先级 左结合

|| 逻辑或运算符

13级优先级 右结合

: 条件运算符

14级优先级 右结合

= += -= = /= %= &= ^= |= <<= >>= 全为赋值运算符

15级优先级 左结合

, 逗号运算

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

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

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

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

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

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

各种运算符间的优先级

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

以上就是关于c语言中的运算符优先级高低是什么意思全部的内容,包括:c语言中的运算符优先级高低是什么意思、C语言中 *,<<,= ,->哪个优先级最低、c语言中运算符号的优先顺序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9450474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存