C++ primer 5th 第二章笔记

mac2022-06-30  20

总结

2.1 : 基本内置类型   2.1.1 算术类型     - 浮点直接使用double     - char当1字节整数使用 指明 unsigned 和 signed     - 超过 int 的类型直接使用 long long

  2.1.2 类型转换:     - 超出范围类型 -> int 结果是为定义的     - 无符号不要使用的场景:          (1) 和有符号混合的表达式       (2) for 中 条件 <0;

  2.1.3 字面值常量:      - 可以使用 前缀 和 后缀指定类型

 

2.2 变量:   2.2.1 变量定义:     -C++11 引入了使用 {} 方式初始化变量      - extern 关键字

 

2.3 复合类型:

  基于其他类型的类型 : 指针 和 引用:

  2.3.1 引用:

    - const 引用指向非const变量会创建一个临时变量   2.3.2 指针:     - 注意 {} 内不初始化的指针很危险   2.3.3 理解复杂的复合声明类型:     - 从右边向左边阅读即可。

 

2.4 const限定符号:   const 默认仅在当前cc文件下有效 , 定义时候添加extern 关键,字其他文件才能extern   2.4.1 const 引用:       - cosnt 引用 指向非const变量创建临时变量   2.4.2 指针 和 const:      - 指向的const的指针       - const指针   2.4.3 顶层const 和 底层const:     - 修饰是变量本身 : 顶层const     - 修饰指向的变量 : 底层const   2.4.4 constexpr 表达式:     - 让编译器件去判断是否为常量表达式吧     - constexpr只能用于字面值类型 [ 算术类型 , 指针 , 引用]     - constexpr 修饰的指针的const是顶层const 要的是固定地址     特别总结:       1.const对于指针来说有顶层 和 底层之说       2.常量表达式一定要在编译的时候得到, 满足即使const类型, 又是常量表达式初始化 才能算常量表达式       3.对于 2 来说, 程序员很难判断是不是常量表达式, 因此C++使用了constexpr 来检测是不是constexpr       4.constexpr 只能对算术类型 , 指针 , 引用(不考虑了)使用,因为其是字面值       5.constexpr 修饰的指针只能使用固定地址的变量(全剧变量) 或 nullptr 初始化, 且const层级为顶层的。

 

 

2.5 处理类型:     2.5.1 类型别名:       - typedef int BOOL;       - using BOOL = int;       - 如果指针类型取了别名 , const修饰是顶层cnost     2.5.2 auto :       - 忽略初始值引用 , 如果auto 和 & 连用 , 则保留初始值的 顶层const , 否则忽视顶层const       - const auto 为保留顶层const     2.5.3 decltype:       - decltype 保留引用 保留 顶层const       - decltype((变量)) 为变量的引用类型       - decltype(赋值语句) 为引用类型       - decltype(表达式) 为表达式的结果的类型

 

2.6 自定义数据结构:       - 数据结构 : 数据集合 + 操作集合。       - C++11 可以使得定义类的时候给予初始值。       - 类定义在头文件当中, 确保引用的cc文件定义均相同。

转载于:https://www.cnblogs.com/Geek-Z/p/10022341.html

最新回复(0)