C语言中乘除法的结合方向,c语言运算优先级与结合方向的问题

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

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

d34476af470d20ca725af1a6e9cb1371.png

936fbb886c5fb9dab6d87062dc352fab.png

以上有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⊙^*

c语言运算符号的优先级

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

一道c语言运算符优先级问题

一道c语言运算符优先级问题 #include using namespace std; int main() { char test[] = {"This ...

C语言操作符优先级

C语言操作符优先级 优先级 运算符 含    义 要求运算 对象的个数 结合方向 1 () [] -> . 圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符 自左至右 2 ! 逻辑非运 ...

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

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

(转)C语言运算符优先级 详细列表

C语言运算符优先级 详细列表 文章转自:Slyar Home 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括号 (表达式)/函数 ...

c 语言 运算符 优先级

C 语言 运算法优先级 从高 到 低 优先级 运算符 功能 适用范围 结合性 15 () [] . -> 括号 下标 存取成员 存取成员 表达式 数组 结构联合 结构联合 → (左→右) 14 ...

C语言运算符优先级和ASCII表

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

java数据类型和运算优先级

一.数据类型 1.基本数据类型: . 布尔类型:boolean(true,false) . 整型:byte(-128,127).short(-32768,32767).int(-2147483648, ...

随机推荐

csuoj 1119: Collecting Coins

http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1119 1119: Collecting Coins Time Limit: 3 Sec  Memo ...

WCF传输1-你是否使用过压缩或Json序列化?

1.当遇到需要传输大量数据时,怎么样传输数据? 2.压缩数据有哪几种常见的方式? 问题1解答:通过压缩来传输数据 问题2解答: (1)WCF自带的压缩方式 (2)自定义WCF binding进行压缩 ...

asp.net中XmlDocument解析出现出错,处理特殊字符

xml结构会解析一些特殊字符,特别是&

hdu 2546 典型01背包

分析:每种菜仅仅可以购买一次,但是低于5元不可消费,求剩余金额的最小值问题..其实也就是最接近5元(>=5)时, 购买还没有买过的蔡中最大值问题,当然还有一些临界情况 1.当余额充足时,可以随意 ...

[转] What is the point of redux when using react?

As I am sure you have heard a bunch of times, by now, React is the V in MVC. I think you can think o ...

使用回调接口实现ActiveX控件和它的容器程序的通讯

本文阅读基础:有一定的C++基础知识(了解继承.回调函数),对MFC的消息机制有一定了解,对COM的基础知识有一定了解,对ActiveX控件有一定了解. 一. 前言 ActiveX控件和它的容器程序如 ...

javascript 基础系列(一)

闭包: function 内部访问外部的variables function f(){ alert(ysr); } 报错了. Certain language constructs block the ...

VC创建多级目录

BOOL ForceCreateDirectory(string strDir)  {    BOOL bRet = FALSE;    //确保以"\"结尾,以创建最后一个目录  ...

[Android FrameWork 6.0源码学习] Window窗口类分析

了解这一章节,需要先了解LayoutInflater这个工具类,我以前分析过:http://www.cnblogs.com/kezhuang/p/6978783.html Window是Activit ...

thymeleaf模板引擎入门

ThymeLeaf是什么 Thymeleaf是一个用于服务器端的java模板引擎,它使用简单但功能强大,目前可以处理的模板类型包括:HTML.XML.TEXT.JavaScript.CSS等. 搭建t ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值