c语言运算的结合方向一直困扰我,不过我终于get到了哈哈

先附上c语言运算优先级和结合方向图片

以上有c语言一共的15个优先级,从上往下递增

c语言的运算符号有很多,当我们打代码或者看代码的时候符号多了真的会搞错,但是当我们仔细研究c运算符时,就会发现还是有规律可寻的呢

综合上表我做一个概述

第一步:建议首先确定好成员(比如结构体数组中stu[i].sum即“结构体数组名[i].成员类型(type)”),再看有无括号,有括号先把括号里面的确定算好

第二步:然后我们要注意单目运算符,单目运算符就是这种运算符只针对一个变量,i++, - (负号), * (指针), & (取址)等,先把单个变量自己的运算算好

再去想和其他变量的运算啦,所有单目运算符的变量计算我们都要从右到左。例如*p++==*(p++)

第三步:看双目运算符, 再就是两个变量的运算了,双目运算符从左到右,但是不同的双目运算符优先级不同,所以在看双目运算符中要注意计算的

先后,这个需要我们记的,记住优先级,还有是从左看到右的。

在这里想个人解读一下&,| 双目运算符

按位与 & ,按位 | 我们并不常用,但是不能和逻辑与 &&,逻辑或 || 弄混啦

& 和 | 在保留和清零某些变量的时候会用到,

按位 & 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下: 00001001 (9的二进制补码) & 00000101 (5的二进制补码)== 00000001 (1的二进制补码),可见9&5=1。

按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。

按位 | 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下: 00001001|00000101
00001101 (十进制为13)可见9|5=13

按位异或 ^ 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。

例如9^5可写成算式如下: 00001001^00000101 == 00001100 (十进制为12)

第四步:在运算完成了之后就 进入赋值环节啦,赋值运算符是从右到左赋值的。例如:a=b+d+c是先算右边的(b+d+c) 再赋值给a

基本四步可以完成了,但是如果用逗号运算符的话,需要说明一下 最后一级逗号运算符

举例说明

b=2,c=7,d=5 ;

a1=(++b,c--,d+3);

在先计算括号里面的,根据逗号逐个赋值,所以a1最后会等于8。

a2=++b,c--,d+3;

根据优先级可知,先赋值再看逗号,a2=3。

欢迎大家指正哦*^⊙o⊙^*

转载于:https://www.cnblogs.com/blogs-192-168-9-222/p/10225661.html

c语言运算优先级与结合方向的问题相关推荐

  1. c语言运算优先级记忆方法

    优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -& ...

  2. c语言符号运算优先级6,c语言运算符号的优先级

    c语言运算符号的优先级 本文来自百度搜索只为查看方便 优先级等级口诀: 圆方括号.箭头一句号, 自增自减非反负.针强地址长度, 乘除,加减,再移位, 小等大等.等等不等, 八位与,七位异,六位或,五与 ...

  3. 【C语言】运算符的优先级,结合方向(自左向右运算、自右向左运算)

    运算首先要考虑的是优先级,然后根据此优先级的结合方向进行相应的运算: (1)优先级:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符 ...

  4. c语言中 ||优先级,C语言运算符号的优先级 A: B: C:|| D:|

    我知道从高到低为:圆括号 单目运算符 算术运算符 关系运算符 逻辑运算C语言运算符优先级顺序如下所示: 自增运算符 ++ 和自减运算符 ,在作后缀运算符(如表达式 x++)时,较其用作前缀运算符(如表 ...

  5. C语言运算符优先级和结合性

    C语言运算符优先级和结合性 优先级 运算符 含义 使用形式 结合性 操作数 1 [ ] 数组下标 数组名[整型表达式] 左结合性 ( ) 圆括号 (表达式) . 成员选择(对象) 对象.成员名 -&g ...

  6. c语言运算符优先级结合,C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  7. c语言 的表示方法,c语言运算符号的表示方法

    c语言运算符号的表示方法 答案:1  信息版本:手机版 解决时间 2020-03-30 17:11 已解决 2020-03-30 12:55 c语言运算符号的表示方法 全部回答 1楼 2020-03- ...

  8. C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  9. c语言运算符优先级 从右到左,c语言运算符优先级,结合性(左/右结合详解)

    重新翻了遍c语言,觉得对c语言运算符结合性有必要提一下,毕竟去年我自己刚学c语言的时候,就没搞明白结合性的问题. 什么是左结合?什么是右结合?它们是干嘛用的?它们是什么时候用的? 本文将围绕这几个问题 ...

最新文章

  1. 资源推荐 | 知识图谱顶会文献集锦(附链接)
  2. bootstrap怎么在一个页面渲染多个表格_推荐一个前端框架
  3. win linux 装系统 通过 u盘
  4. jQuery EasyUI combobox多选及赋值、读取、回显
  5. html5点击按钮出现弹窗 怎么实现_HTML5游戏开发过程中的二三事
  6. Python 命令行解析器argparse及传参数详解
  7. error HLP: Help compilation failed with code 1
  8. SSH pts 虚拟终端
  9. servlet上传文件接收工具
  10. python 列表为空_如果列表为空,则Python返回False
  11. python缩进问题idle_Python IDLE中的缩进问题
  12. ue编辑器漏洞_UEditor编辑器任意文件上传漏洞分析
  13. java : 实现微信网页授权,超详细!
  14. VMware拟收购云应用管理服务商Wavefront
  15. 中华黄金·金生态合伙人颁奖典礼在珠海站开幕完美收官!!
  16. Five I/O Models
  17. NPOI导出数据,设置格式,锁定单元格
  18. 局域网联机_文明6/单机.局域网联机/5/4/3【单机游戏】
  19. 一加手机救砖资源-sahara通信失败 或者 checkHwid failed都是由于使用错了救砖包
  20. 怎么实现抓取同行网站访客号码

热门文章

  1. Linux使用Mac键盘,System76 推出 Linux 键盘 看完手痒了!
  2. nginx 新上线、机房白名单
  3. CentOS 6.5 安装 Python3
  4. 有同学问我:Fetch 和 Ajax 有什么区别?
  5. python na不显示 占位_Python学习之路—Python基础(一)
  6. 更改窗口图标并将其显示在任务栏
  7. GDAL的python版本安装使用
  8. 开源GIS(九)——openlayers中简单要素的添加与geojson数据修改添加
  9. 开源GIS(七)——openlayers中单击获取要素(深度好文)
  10. 小游戏一键跳转小程序任意页面