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)

posted @ 2020-09-20 16:29  ctxcc  阅读(73)  评论(0)    收藏  举报