0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C运算符的优先级和结合性详细解决

Wildesbeast 来源:今日头条 作者:算法集市 2020-02-22 17:27 次阅读

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

C语言内置了丰富的运算符,大体可分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

根据运算符可操作的操作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。

1、算数运算符

用于数值计算,包括:加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)。

2、关系运算符

用于比较运算,包括:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=)。

3、逻辑运算符

用于逻辑运算,包括:与(&&)、或(||)、非(!)。

4、位操作运算符

按二进制位进行运算,包括:位与(&)、位或(|)、位非(~)、 位异或(^)、左移(<<)、右移(>>)。

5、赋值运算符

用于赋值运算,包括:简单赋值(=)、复合算术赋值(+=、-=、*= 、/=、%=)以及复合位运算赋值(&=、|=、^=、>>=、<<=)等。

6、条件运算符

用于条件求值,三目运算符:(x > y) ? x : y。C语言中有且只有这一个三目运算符。

7、逗号运算符

用于把若干表达式组合成一个表达式:表达式1 , 表达式2。

8、指针运算符

用于取内容(*)和取地址(&)两种运算。

9、求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10、特殊运算符

包括括号()、数组下标[]、成员(-> 和 .)等。

比如式子“x = 1 + 2 * 3 / 4”,需要先计算乘再计算除,然后是加,最后是赋值。这里介绍下关于运算符在参与运算过程中的两个概念:

优先级:当不同运算符优先级不同时,先计算谁后计算谁

结合性:当不同运算符优先级相同时,先计算谁后计算谁

运算符的优先级和结合性

作为初学者,当一个表达式中有多个运算符时,如果不知道哪个优先级高哪个优先级低就可以查一下优先级表,等用的时间长了自然而然就记住了。而且,事实上在编程的时候也不需要考虑优先级的问题。因为如果不知道优先级高低的话,加一个括号就可以了,因为括号( )的优先级是最高的。

另外,大多数运算符的结合性都是从左往右。从右向左的一个是单目运算符,另一个是三目运算符,还有一个就是双目运算符中的赋值运算符=。运算符的“结合性”也不用死记,在不断使用中就记住了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128390
  • 编译器
    +关注

    关注

    1

    文章

    1576

    浏览量

    48606
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25593
收藏 人收藏

    评论

    相关推荐

    JAVA语言的运算符优先级

    表达式(1)中,运算符“*”比“+”的优先级高,所以先求b*c的值之后再与a的值相加。表达成(2)中,逻辑运算符“||”比赋值运算符
    发表于 12-06 00:29

    单片机C语言运算符优先级结合

    运算符优先级结合 优先级操作功能结合
    发表于 11-07 10:47

    【跟我学单片机C语言】运算符优先级结合资料暨结语篇

    【跟我学单片机C语言】系列教程到此就结束了,大家有什么学习感悟或者问题,可以直接回复帖子,你的问题将在第一时间得到解答。希望大家继续关注单片机,关注论坛。这里在附上一些资料,运算符优先级结合
    发表于 12-27 10:16

    运算符优先级

    运算符优先级
    发表于 08-20 12:49

    关于C语言的运算符和表达式--笔记1

    ,c;a=123/100=1;b=123%100/10=2;c=123%100%10=3; 三:算术运算优先级结合
    发表于 07-19 00:48

    C语言,操作优先级顺序。

    ;、==、!=) 〉逻辑运算符(特别要说明,按位与、或的优先级高于逻辑与、或),接下来就是三目运算符?=然后是赋值操作等号,最后是逗号,。运算符
    发表于 01-16 17:30

    STM32学习及应用笔记二:一次运算符优先级造成的错误

    误。 其实本人平时还是非常注意代码规范的,但也有一时疏忽的,确实运算符优先级有时候让人迷惑。下面我们简单的总结一下C语言中运算符优先级
    发表于 06-03 12:18

    C语言运算符优先级结合

    ,很明显先进行乘法运算,计算3*5,结果为15,再进行加法运算,计算12+15,结果为27。也就是说,乘法的优先级比加法高,要先计算,这与数学中的规则是一样的。 所谓优先级,就是当
    发表于 07-06 06:46

    Bug之逻辑运算符优先级分享!

    发现原来是运算符优先级的问题;看下面的图可以知道,==的优先级高于 & ,再看上面那段代码。。。发现了什么。。。。。。。天呐,,,可把我害苦了。。这也告诉我们,如果对优先级不全熟悉的话
    发表于 10-28 20:31

    C语言运算符优先级(超详细

    C语言运算符优先级(超详细) 当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤
    发表于 04-27 16:47

    C语言入门教程-运算符优先级

    运算符优先级C语言有丰富的运算符。如果不清楚这些运算符优先级,则在同时使用多个运算符时就容易产
    发表于 07-29 14:21 1184次阅读

    C语言运算符优先级

    电子发烧友网站提供《C语言运算符优先级.pdf》资料免费下载
    发表于 05-27 08:00 3次下载

    c语言运算符优先级规律

    详细!快进来复习一下C语言运算符优先级 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤
    的头像 发表于 04-03 11:30 7229次阅读
    c语言<b class='flag-5'>运算符</b><b class='flag-5'>优先级</b>规律

    python运算符优先级顺序口诀

    详细介绍Python运算符优先级顺序以及如何正确使用它们。 首先,让我们从最高优先级运算符开始,逐步向下解释。在Python中,最高
    的头像 发表于 11-22 14:34 773次阅读

    python中运算符优先级大小

    Python中运算符优先级决定了表达式中各个运算符的计算顺序。了解运算符优先级对于正确理解和编写复杂的表达式非常重要。本文将
    的头像 发表于 11-29 16:21 520次阅读