C++ Primer经典书目阅读之五:表达式

表达式

1.   算术操作符

算术操作符主要有:

 

1.对两个整数做除法,结果仍为整数,如果它的商包含小数部分,则小数部分会被截除;

2.求余操作的操作数只能为整型;

3.如果两个操作数为正,除法和求余操作的结果也是正数;如果两个操作数的结果都是负数,除法操作的结果为正数或零,而求么操作的结果则为负数或零;

2.关系操作符和逻辑操作符

关系操作符主要有:

 

1.逻辑与和逻辑或操作符综述先计算其左操作数,然后再计算其右操作数。只有在仅靠做操作数的值无法确定逻辑表达式的结果时,才会求解其又操作数。常称这种求值策略为“短路求值”。

2.不应该串联使用关系操作符

      If(i < j < k),只要k大于1上式就为真

      if(I < j && j < k)才为上式的正确写法,数学意义为i<j<k

3.位操作符

位操作符主要有:

 

    1.对于位操作符,由于系统不能确保如何处理其操作数的符号位,所以强烈建议使用unsigned整形操作数。

 

4.赋值操作符

5.自增和自减操作符

1.前置自增和后置自增操作都是对操作数加1,不同的是前置表达式的值是加1后的值,后置表达式的值是未加1的值,前置自减和后置自减操作同理。

6.箭头操作符

7.条件操作符

   1.条件操作符是C++中唯一的三元操作符,它允许将简单的if-else判断语句嵌入表达式中。

8.sizeof操作符

1.Sizeof操作符的作用是返回一个对象或类型名的长度,返回值的类型为size-t,长度单位是字节。

2.使用sizeof的结果部分地一来所涉及的类型:

   对char类型或值为char类型的表达式做sizeof操作保证得1.

   对引用类型做sizeof操作将返回存放此引用类型对象所需的内存空间大小;

   对指针做sizeof操作将返回存放指针所需的内存大小;注意,如果要获取该指针所指向对象的大小,则必须对该指针进行解引用;

   对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上数组元素的个数。

9.逗号操作符

    逗号表达式是蚁族由逗号分隔的表达式,这些表达式从左向右计算。逗号表达式的结果是其最右边表达式的值。

10符号表达式的求值    

  操作符的优先级为:

   1.符合表达式的求值根据符号的优先级计算

   2.圆括号优先于优先级之上

   3.一个表达式里,不要在两个或更多的子表达式中对同一对象做自增或自减操作。

11.new和delete表达式

1.如果指针指向不是用new分配的内存地址,则在该至镇上使用delete是不合法的

2.如果指针的值为0,则在其上做delete操作是合法的,不过没有任何意义;

3.在delete指针之后,应立即将该指针置为0,这样就可以清楚的表明指针不再指向任何对象,避免悬垂指针的存在。

12.类型转换

时间: 2024-10-26 12:04:36

C++ Primer经典书目阅读之五:表达式的相关文章

C++ Primer经典书目阅读之四:数组和指针

1. 数组 1.与vector相比,数组的显著缺陷在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度. 2.与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组复制给另一个数组,这些操作都是非法的. C++中求数组int a[size]中元素个数可以用sizeof(a)/sizeof(int) 2.指针 1.尽量避免使用指针和数组 2.指针和引用的区别: 第一:引用总是指向某个对象,定义引用时没有初始化是错误的: 第二:赋值行为的差异:给引用赋值修改的是该引用所关联

经典算法(9) 从归并排序到数列的逆序数对(微软笔试题)

首先来看看原题 微软2010年笔试题 在一个排列中,如果一对数的前后位置与大小顺序相反 ,即前面的数大于后面的数,那么它们就称为一个逆序数对.一个排列中逆序的总数就称为这个排列的逆序 数.如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定 一数组,要求统计出该数组的逆序数对个数. 计算数列的逆序数对个数最简单的方便就最从前向后依 次统计每个数字与它后面的数字是否能组成逆序数对.代码如下: #include <stdio.h> int ma

摘自《代码阅读方法与实践》

第一章:导论要养成一个习惯,经常花时间阅读别人编写的高品质代码.要有选择地阅读代码,同时,还要有自己的目标.您是想学习新的模式.编码风格.还是满足某些需求的方法?要注意并重视代码中特殊的非功能性需求,这些需求也许会导致特定的实现风格.在现有的代码上工作时,请与作者或维护人员进行必须的协调,以避免重复劳动或因此而产生厌恶情绪.请将从开放源码软件中得到的益处看作是一项贷款,尽可能地寻找各种方式来回报开放源码社团.多数情况下,如果您想要了解"别人会如何完成这个功能呢?",除了阅读代码以外,没

JS编程建议——13:养成优化表达式的思维方式(1)

建议13:养成优化表达式的思维方式(1)对同一个表达式稍加改动就会打乱表达式的逻辑运算顺序,因此我们应该学会优化表达式的结构,不改变表达式的运算顺序和结果即可提高代码的可读性.1.第一种方式--加小括号例如,面对下面这个复杂表达式,可能被&&和||的优先级所迷惑. (a + b > c && a – b < c || a > b > c) 不过,如果进行如下优化,逻辑运算的顺序就会非常清晰了. ((a + b > c) && (

后台开发:核心技术与应用实践

后台开发:核心技术与应用实践 徐晓鑫 著 图书在版编目(CIP)数据 后台开发:核心技术与应用实践 / 徐晓鑫著. -北京:机械工业出版社,2016.8 ISBN 978-7-111-54339-8 I. 后- II. 徐- III. 网络-开发 IV. TP393.092 中国版本图书馆CIP数据核字(2016)第167884号 后台开发:核心技术与应用实践 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:李 艺 责任校对:董纪丽 印 刷: 版 次:

交互设计体会:出稿方法论和新人如何提高

文章描述:设计思维与出稿方法. 笔者初入交互设计行业,在工作的各种锻炼中发现设计的 sense 是初级设计师最需要提高的方面.从前只是在书本或文章里接受理论教育,而在实操时才正在体会到交互设计师的职责与处境.在这里想跟各位分享下自己的想法,抛砖引玉求大神指点. 设计思维是核心竞争力 与视觉设计师.前端开发等职业相比,设计思维可以说是交互设计师的核心竞争力.真正优秀的交互设计师应该能通过自己的思考,用最恰当.最有效的方式去满足一个需求,而不只是原型的画图者. 大多数情况下,是否自然.简洁.好用,可

浅谈交互设计的设计思维与出稿方法

笔者初入交互设计行业,在工作的各种锻炼中发现设计的 sense 是初级设计师最需要提高的方面.从前只是在书本或文章里接受理论教育,而在实操时才正在体会到交互设计师的职责与处境.在这里想跟各位分享下自己的想法,抛砖引玉求大神指点. 设计思维是核心竞争力 与视觉设计师.前端开发等职业相比,设计思维可以说是交互设计师的核心竞争力.真正优秀的交互设计师应该能通过自己的思考,用最恰当.最有效的方式去满足一个需求,而不只是原型的画图者. 大多数情况下,是否自然.简洁.好用,可以作为交互方案评判标准.但在设计

后台开发:核心技术与应用实践导读

后台开发:核心技术与应用实践 徐晓鑫 著 图书在版编目(CIP)数据 后台开发:核心技术与应用实践 / 徐晓鑫著. -北京:机械工业出版社,2016.8 ISBN 978-7-111-54339-8 I. 后- II. 徐- III. 网络-开发 IV. TP393.092 中国版本图书馆CIP数据核字(2016)第167884号 后台开发:核心技术与应用实践 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:李 艺 责任校对:董纪丽 印 刷: 版 次:

设计思维与出稿方法 谈出稿方法论

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 笔者初入交互设计行业,在工作的各种锻炼中发现设计的 sense 是初级设计师最需要提高的方面.从前只是在书本或文章里接受理论教育,而在实操时才正在体会到交互设计师的职责与处境.在这里想跟各位分享下自己的想法,抛砖引玉求大神指点. 设计思维是核心竞争力 与10243.html">视觉设计师.前端开发等职业相比,设计思维可以说是交