当前位置: 首页 > news >正文

怀化订水网站灰色广告投放平台

怀化订水网站,灰色广告投放平台,已有网站做移动网站,杭州seo网络公司文章目录 前言1.运算优先级表2.举例说明:总结 前言 最近复习C基础知识的时候,发现对这部分还是有些模糊。常用的 - ,括号等运算符对于它们的优先级还是比较明确的。但是涉及到移位运算,逻辑运算这种,再结合四则运算…

文章目录

  • 前言
  • 1.运算优先级表
  • 2.举例说明:
  • 总结

前言

最近复习C++基础知识的时候,发现对这部分还是有些模糊。常用的+ - × ÷
,括号等运算符对于它们的优先级还是比较明确的。但是涉及到移位运算,逻辑运算这种,再结合四则运算,就有点分不清了。
为此这篇博客就记录一下,后面再稍微结合点例子举例说明一下。


1.运算优先级表

优先级运算符功能目数结合性
1( )改变运算优先级或函数调用双目从左向右
[ ]访问数组元素
.直接访问数据成员
->间接访问数据成员
2!逻辑非单目从右到左
~按位取反
+,-取正,取负
*间接访问对象
&取对象地址
++,- -增1,减1
( )强制类型转换
sizeof测类型长度
3*,/,%乘除取余双目从左到右
4+,-加减
5<<,>>,>>>按位左移,按位右移,无符号右移
6<,<=,>,>=小于,小于等于,大于,大于等于
7==,!=等于,不等于
8&按位与
9^按位异或
10|按位或
11&&逻辑与
12||逻辑或
13?:条件运算符三目从右向左
14=赋值双目从右向左
+=,-=加赋值,减赋值
*=,/=乘赋值,除赋值
%=,&=取余赋值,按位与赋值
^=按位异或赋值
|=按位或赋值
<<=按位左移赋值
>>=按位右移赋值
15,逗号运算符双目从左向右

2.举例说明:

Example1

求值:5+10*20/2

这个就是简单的四则运算,先乘除再加减。
对应一下上面的表就是,乘除的优先级3比加减的优先级4要高,所以先乘除,同时满足从左到右,因此先是乘,10乘以20,再是除,200除以2,最后在加5,得到的答案为105

Example2

求值:12 / 3 * 4 + 5 * 15 + 24 % 4 / 2

这个和上面类似,只不过多了一个取余%,结合上表,优先级3,4两行。
所要求的式子等价于((12 / 3) * 4) + (5 * 15) + ((24 % 4) / 2)=9

Example3

假设i、j和k是三个整数,说明表达式i!=j<k的含义。

这题就是比较!=<之间优先级的比较。
查一下表可以看到!=优先级为7,<为6,所以应该先算小于,再判断不等号。
因此上式的求值过程等同于i !=(j<k),先比较j和k的大小,得到的结果是一个布尔值(1或0);然后判断i的值与之是否相等。

Example4

因为运算符的优先级问题,下面这条表达式无法通过编译。根据上表指出它的问题在哪里?应该如何修改?
string s = “word” ;
string pl = s + s[s.size ( ) - 1] == ‘s’? “” : “s” ;

看这个第二句赋值语句,我们是想判断字符串s的最后一个字符是否是s,如果是的话就不变,否则就让s字符串的最后一个字符为s。
但是这里因为运算符优先级问题,无法实现我们想要的效果。

题目中的几个运算符的优先级次序从高到低是加法运算符、相等运算符、条件运算符和赋值运算符,因此式子的求值过程是先把s和 s [s.size ( ) - 1]相加得到一个新字符串,然后该字符串与字符’s’比较是否相等,这是一个非法操作,并且与程序的原意不符。
要想实现程序的原意,即先判断字符串s 的最后一个字符是否是’s’,如果是,什么也不做;如果不是,在 s 的末尾添加一个字符’s’,我们应该添加括号强制限定运算符的执行顺序。
string pl = s + (s [s.size() - 1] == 's'? "" : "s") ;

Example5

如果一台机器上int占32位.char占8位,用的是 Latin-1字符集,其中字符’q’的二进制形式是01110001,那么表达式~ ‘q’<<6的值是什么?

在位运算符中,运算符~(优先级2)的优先级高于<<(优先级5),因此先对q按位求反,因为位运算符的运算对象应该是整数类型,所以字符’q’首先转换为整数类型。如题所示,char占8位而int占32位,所以字符’q’转换后得到
00000000 0000000 00000000 01110001,按位求反得到11111111 11111111 11111111 10001110;接着执行移位操作,得到11111111 11111111 11100011 10000000。
C++规定整数按照其补码形式存储,对上式求补,得到10000000 000000000011100 10000000,即最终结果的二进制形式,转换成十进制形式是-7296

Example6

说明下面这条表达式的含义。
somevalue ?++x,++y : - -x,- -y

这个咋一看,somevalue为真,那就++x,++y,否则就- -x,- -y。
我们自己看一下上面的表,这里的条件运算符和逗号之间的优先级还是存在一些差异的。

C++规定条件运算符的优先级高于逗号运算符,所以somevalue ? ++x,++y :- -x,- -y
实际上等价于(somevalue ? ++x,++y : - -x),- -y。
它的求值过程是,首先判断somevalue是否为真,如果为真,依次执行++x和++y,最后执行- -y;如果为假,执行- -x和- -y。


总结

这篇博客总结了一下运算优先级表,并举了一些简单和稍微复杂的例子作为辅助。后期在编程中遇到优先级问题,其实最好的方式我觉得是加括号。但是有时做题目,或者看别人的代码,理解时还需要脑子里有这个对照表。

http://www.hkea.cn/news/762825/

相关文章:

  • 合肥网站建设平台小程序怎么引流推广
  • 做网站被拘留免费找客源软件
  • 门户型网站建设百度seo快速提升排名
  • 印度做杂质的网站如何进行网络推广
  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营
  • 做花馍网站百度联盟
  • 沈阳建设企业网站google浏览器官网
  • 毕业论文 网站开发营销qq下载
  • 建网站要多长时间外贸网站优化
  • 苹果网站做的好的点电脑培训网上免费课程
  • 做网站开源互联网优化是什么意思
  • 模仿做网站b站上海热点新闻
  • phpcmsv9网站地图地推的60种方法
  • 湖南手机版建站系统哪个好百度网盘app怎么打开链接
  • asp网站开发的实训报告电商营销推广有哪些?
  • 交互设计流程外贸网站优化公司
  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算
  • 西双版纳疫情最新情况seo营销的概念
  • 网站推广seo蜘蛛屯优化排名模板建网站价格
  • 怎样建设公司网站小程序b2b网站大全免费
  • 百度抓取不到网站百度识图搜索图片来源
  • 企业网站栏目规划的重要性网络营销的概述
  • 公司网站建设找谁做免费发布推广信息网站
  • 虚拟币网站开发seo百度关键字优化