C++笔记2

来源:互联网 发布:wdcp数据库备份在哪里 编辑:程序博客网 时间:2024/06/05 14:12
1.const void * 可以指向任何const类型的指针
2.void *不能进行解引用
3.算术运算的长度有限
4.短路求值
5.如果&&的操作会遇到边界等比较危险的情况,则应将其放于左值操作数
6.不应该将条件表达式串接
7.移位操作的右操作数必须小于左操作数的位数
8.位与 逻辑与  位或 逻辑或
9.bitset优于整型数据的低级直接位操作
10.移位操作符比算术操作符优先级低,但比关系运算符的优先级高
11.赋值操作符具有右结合性
12.使用前自增运算符来优化性能
13.自增运算符的优先级高于解引用
14.解引用的优先级低于点运算符
15.圆括号凌驾于优先级之上
16.C++使用直接初始化的规则初始化动态创建的对象
几乎在动态创建对象时都可以对其进行初始化
17.悬垂指针 删除动态分配对象的指针之后,需要将指针值设为0,这样可以防止使用已删除的指针。   
18.隐式类型转换需要将表达式中的类型转换为最长的数据类型。
19.强制类型转换本质上是非常危险的
const_cast添加或删除const特性
编译器执行的隐式类型转换都可以由static_cast转换
reinterpret_cast使用起来非常危险(本质上依赖机器)
原有的强制类型转换可视性比较差,难以跟踪
dynamic_cast用于结合继承和运行时的类型识别
20.整型提升
21.空语句并不都是无害的
22.if语句中的条件语句可以是变量定义,但必须要初始化,且初始化类型为算术类型或者指针类型。
23.悬垂else(if多与else的情况,使用{}可以解决这一问题)
24.省略for循环体内的判断条件就必须在循环体内增加break或者return语句
25.goto语句  跳转到程序内带标号的语句
26.如果没有try块,程序将自动调用teminate终止程序退出
27.计算下溢
28.用于调试时执行的代码
#ifndefine NDEBUG
#endif
在完成代码编写的时候,&CC -DNDEBUG  main.c定义NDEBUG变量
29.assert检测不可能条件
30.带标号的语句
31.预处理宏
32.throw或者raise
33.throw出来一个对象,并将程序转到最近处理该异常的catch语句中去
0 0
原创粉丝点击