剑指offer速记
一、
const:如果函数参数是指针,且仅作输入用,则必须在类型前面加上const,以用来防止该指针在函数体内被意外修改。
const在*前表示指针所指的内容固定(不允许*abc="789"),指针的指向可变 const int *abc="123" ;abc="345";
const在*后表示指针本身的指向固定(不允许a++),指针所指的内容可变 char tmp[]="123"; int * const abc=tmp;abc[1]='0';
二、
C++中,四个与类型转换相关的关键字:static_cast、const_cast、reinterpret_cast、dynamic_cast。
空类型的size是1字节,虽然不包含任何信息但是必须在内存中占有一定空间。添加了构造函数和析构函数size不变。如果有虚函数,会为该类型创建虚函数表,并在该类型的每一个实例中添加一个指向虚函数表的指针,32位机器上一个指针4字节,64位机器上一个指针8字节
构造函数不能以本类的对象作为唯一参数,以免和复制构造函数相混淆Complex (Complex c) {...}
计算一个数二进制表示中1的个数,内置函数格式 __builtin_popcount(n)