您当前的位置: 首页 >  c++

蔗理苦

暂无认证

  • 4浏览

    0关注

    88博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2021-09-03 《C++ Primer》学习记录:第2、3章

蔗理苦 发布时间:2021-09-16 21:06:53 ,浏览量:4

文章目录
      • 第 1 章 开始(*)
    • 第 I 部分 C++ 基础
      • 第 2 章 变量和基本类型
        • 2.1 基本内置类型
          • 2.1.1 算数类型
          • 2.1.2 类型转换
          • 2.1.3 字面值常量
        • 2.2 变量
          • 2.2.1 变量定义
          • 2.2.2 变量声明和定义的关系
          • 2.2.3 标识符
          • 2.2.4 名字的作用域(*)
        • 2.3 复合类型
          • 2.3.1 引用(*)
          • 2.3.2 指针
          • 2.3.3 理解复合类型的声明
        • 2.4 const 限定符
          • 2.4.1 const 的引用
          • 2.4.2 指针和 const
          • 2.4.3 顶层 const
          • 2.4.4 constexpr 和常量表达式
        • 2.5 处理类型
          • 2.5.1 类型别名
          • 2.5.2 auto 类型说明符
          • 2.5.3 decltype 类型指示符
        • 2.6 自定义数据结构
          • 2.6.1 定义 Sales_data 类型(*)
          • 2.6.2 使用 Sales_data 类(*)
          • 2.6.3 编写自己的头文件
      • 第 3 章 字符串、向量和数组
        • 3.1 命名空间的 using 声明
        • 3.2 标准库类型 string
          • 3.2.1 定义和初始化 string 对象
          • 3.2.2 string 对象上的操作
          • 3.2.3 处理 string 对象中的字符
        • 3.3 标准库类型 vector
          • 3.3.1 定义和初始化 vector 对象
          • 3.3.2 向 vector 对象中添加元素
          • 3.3.3 其他 vector 操作
        • 3.4 迭代器介绍
          • 3.4.1 使用迭代器
          • 3.4.2 迭代器运算
        • 3.5 数组
          • 3.5.1 定义和初始化内置数组
          • 3.5.2 访问数组元素
          • 3.5.3 指针和数组
          • 3.5.4 C 风格字符串
          • 3.5.5 与旧代码的接口
        • 3.6 多维数组

第 1 章 开始(*) 第 I 部分 C++ 基础 第 2 章 变量和基本类型

​ 空类型不对应具体的值,仅用于一些特殊的场合。例如,当函数不返回任何值时使用空类型作为返回的类型。

2.1 基本内置类型 2.1.1 算数类型

​ char16_t 和 char32_t 为 Unicode 字符集(用于表示所有自然语言中字符的标准)服务。

​ 字符型被分为 3 种:char、signed char 和 unsigned char。但是实际的字符表示只有 2 种:signed char 和 unsigned char。类型 char 具体表示哪一种由不同编译器决定。

​ 如何选择类型:

  1. 明知数值不为负时,选用无符号类型;
  2. 整数运算最好使用 int,超过范围则用 long long;
  3. 算术表达式中不要使用 char 或 bool,使用 char 最好明确指定其为 signed char 还是 unsigned char,否则不同的编译器对 char 的解释不同;
  4. 浮点数运算使用 double,其运算代价和 float 相差不大,而使用 long double 的代价相对较高。
2.1.2 类型转换
bool b = 42;	// b 为真
int i = b;	// i 的值为 1
i = 3.14;	// i 的值为 3
double pi = i;	// pi 的值为 3.0
unsigned char c = -1;	// c 的值为 255
signed char c2 = 256;	// c 的值超出范围,未定义。程序可能继续工作、可能崩溃、也可能生成垃圾数据

​ 有符号数会自动转换成无符号数,注意不要混用两种类型进行运算。

unsigned u1 = 42, u2 = 10;
int i = -42;

cout             
关注
打赏
1657823434
查看更多评论
0.1195s