Chapter 4
不能使用指向const对象的指针修改基础对象,然而如果该指针指向的是一个非const对象,可以用其他方式来修改其所指的对象。
比如有个指针const int *p,那么不管你指的是什么对象,你都不能用p来修改它所指向的对象,当然你改p是没有问题的。
调用new动态创建长度为0的数组是合法的
静态数组的长度不能是0,动态的可以。不知道为什么在项目的代码里看到有0数组,奇怪。
Chapter 5
sizeof返回整个数组在内存中的存储长度
可以用sizeof(数组名)/sizeof(数组类型)来求得数组中元素个数,切记数组传递给函数作参数时会退化为指针,这时候就不能求了
不能将数组转化为指针的情况有:数组用作取地址操作符的操作数或sizeof操作符的操作数时,或用数组对数组的引用进行初始化时,不会将数组转化为指针。
Chapter 6
assert是一种预处理宏,使用单个表达式作为断言条件。如果预处理变量NDEBUG没有定义,则assert将求解它的条件表达式。若条件为false,assert输出信息并终止程序的执行。
简单来说,就是assert的条件为true才可以不然就直接终止,定义NDEBUG要在引用<cassert>头文件之前,否则无效。
try
{
//代码
throw(异常)
}
catch{a异常}