C++Primer学习笔记5 表达式

1、要理解多个操作数组成的表达式,必须先理解操作符的优先级、结合性、和操作数的求值顺序。

2、对于算术操作符来说:一元操作符的优先级最高、其次是乘除、再其次是二元的加、减法操作。

3、关系操作符使用算术或者指针类型的操作数,并返回bool值。

4、逻辑与与逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解其右操作数,这种求值策略称为“短路求值”。

5、不应该串接使用关系操作符。

6、应该仔细区分位与(&)与逻辑与(&&)之间的区别,以及位或(|)与逻辑或(||)之间的区别。

7、IO操纵符也是左结合。移位操作具有中等优先级,其优先级比算术操作符低, 比关系操作符以及赋值操作符和条件操作符优先级高。

8、C++中支持10个复合赋值操作符:+=、-=、*=、%=、<<=、>>=、&=、^=、|=;使用复合赋值操作符时,左操作数只计算了一次,而使用类似的长操作符则需要计算两次。

9、条件操作符? : 的优先级相当低、当要在一个复合的表达式中使用条件操作符时,需要使用括号。

10、圆括号凌驾于优先级之上。

11、对于内置类型或者没有默认构造函数的类型,采用不同初始化方式有显著差别。int *pi = new int;  int *pi = new int() 第一个语句的int类型变量没有初始化,而第二个语句的int型变量则被初始化为0.

12、动态类型转换有四种。dynamic_cast(运行时识别指针或者引用所指向的对象) 、const_cast(去掉表达式的const性质)、static_cast(编译器隐式的执行的任何转换都可以由static_cast显示完成)、reinterpret_cast(通常为操作数的位模式提供较低层次的重新解释, 它本质上依赖于机器。需要理解所应用的数据类型,以及编辑器实现强制类型转换的细节)。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值