zoukankan      html  css  js  c++  java
  • C++ primer 5th 第二章笔记


    总结

    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文件定义均相同。

  • 相关阅读:
    ContentControl 嵌套后 Foreground 无法继承
    Windows Phone 开发学习
    Windows 8 Metro 风格应用开发
    微信小程序中时间戳和日期的相互转换
    二维数组,要求按考试分数高到低排序,如果考试分数相同就按违纪扣分低到高排序
    微信小程序实现按首字母检索城市列表
    微信40125错误
    sublime text3 英文版转为中文版
    html5代码如何转成小程序代码
    阿里云刘强:无影云电脑构建云上安全办公室
  • 原文地址:https://www.cnblogs.com/Geek-Z/p/10022341.html
Copyright © 2011-2022 走看看