c++ primer 5 学习 ——第二天

142 阅读2分钟

第一部分 C++基础

第二章 变量和基本类型

2.1 内置类型

2.1.1 算术类型

	类型		含义			最小尺寸(不同机器不同,所有此处为最小值)
	bool	  布尔类型  	未定义
    char	  字符	 	  8wchar_t	  宽字符	     16char16_t  Unicode字符	  16char32_t  Unicode字符	  32short	  短整形	 	 16int	  	  整形	  	  16long	  长整形	 	 32long long 长整形	 	 64float	  单精度浮点数   6位有效数字
    double	  双精度浮点数   10位有效数字
    long double	  扩展精度浮点数  10位有效数字
    
2.1.2 类型转换

2.1.3 字面值常量

2.2 变量

2.2.1 变量定义
	
   	定义
    
      数据类型 变量名;
	
   	默认初始化
    
      函数体之外的变量初始化为0,内部不被初始化,类的初始化由类决定
      
2.2.2 变量声明和定义的关系
	
    extern 用于声明变量,如果包含初始值则为定义
    
2.2.3 标识符


	由字母,下划线,数字组成,且以字母或下划线开头,函数体外不能以下划线开头,不能使用保留的标识符,不能连续两个下划线,不能以下划线接大写字母开头。

2.2.4 名字的作用域

2.3 复合类型

2.3.1 引用
	
    引用就是别名,引用只能绑定对象,不能绑定字面值

2.3.2 指针
	
    建议初始化所有指针
    
    void* 指针
    
    指针的引用

2.4 const 限定符

只在本文件有效,如果想在多个文件间共享,必须使用 extern

2.4.1 const的引用
	
    初始化时允许使用任意表达式作为初始化值
    对const的引用可能引用一个非const的值
    
    const int &r1 = i;
    r1 = 0; //错误 不能修改r2
    i =0; //正确 可以修改i
	
2.4.2 指针和const
	
    指向常量的指针和常量指针
    const double *cptr = π //指向常量的指针
    double *const pip = π //const指针
    
2.4.3 顶层const

	
2.4.4 constexpr和常量表达式

	constexpr 将变量声明为常量
    

2.5 处理类型

2.5.1 类型别名
	
    typedef 类型名 类型别名 //传统方式 
    using 类型别名 = 类型名 //c11新增
    
2.5.2 auto类型说明符
	
    auto 根据值判断类型
    
2.5.3 decltype 类型指示符

	返回数据类型 类似 python中 type
    decltype((i)) // 双层括号返回 引用
    

2.6 自定义数据结构

2.6.1 定义Sales_data类型

	struct Sales_data {
      std::string bookNo;
      unsigned units_sold = 0;
      double revenue = 0.0;
    };