第一部分 C++基础
第二章 变量和基本类型
2.1 内置类型
2.1.1 算术类型
类型 含义 最小尺寸(不同机器不同,所有此处为最小值)
bool 布尔类型 未定义
char 字符 8位
wchar_t 宽字符 16位
char16_t Unicode字符 16位
char32_t Unicode字符 32位
short 短整形 16位
int 整形 16位
long 长整形 32位
long long 长整形 64位
float 单精度浮点数 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;
};