C++primer 第二章
·float的有效数字:6位 ; double的有效数字:10位
·无符号类型初始化赋值超出范围:初始值对其数值总数取模后的余数。 如 unsigne char c = -1 // 若char占8bit,则c = 255
·无符号类型的死循环:for (unsigned u = 10; u >= 0; u --) //unsigned 的范围:0 - 4294967295 当u = 0; u --; u会变成4294967295
·带符号→无符号:当表达式既有带符号类型又有无符号类型(自动转换)
·extern声明:extern int i; //从别处借用i
·引用必须初始化,且不可改绑
引用与字面值: ①合法:常量引用可绑定字面值 const int &a = 2; ②非法:非常量引用不可绑定字面值 int &a = 2;
点生成空指针:①nullprt ②0 ③NULL(cstdlib头文件)
·const 必须初始化
·引用与const: 合法:常量=变量; 非法:变量=常量
·const与指针: ①const *pi = &a 不允许通过pi来改变a值 ②*const pi = &a pi永远指向a(常量指针)
·顶层const:对象拷贝不受影响 随意
·底层const: ①拷入和拷贝的对象必须具有相同的底层const资格; ②一般来说,非常量可以转换成常量,反之则不行
·constexpr指针的初始值必须是nullptr或0,或者是固定地址的对象
·一般情况下,定义的对象 函数体内:非固定地址; 函数体外:固定地址
·constexpr定义的是常量指针
·typedef、指针、常量: ①typedef char *pstring; const pstring cstr = 0; //cstr是常量指针
②const char *pstring = 0; //cstr是指向常量的指针
·decltype:decltype(f()) sum = x // sum的类型为f(), 值为x
·当f()表达式内有解引用* 和 括号() sum为引用类型 如 *p, (i)
浙公网安备 33010602011771号