一.基本内置类型:
1.算数类型(整型,浮点型):
不同数据类型具有不同的尺寸即比特数。布尔类型代表真假:字符类型(char)存放机器基本字符集中对应任意字符的数字值,其他字符类型用于拓展字符集;浮点型用于表示单精度,双精度和拓展精度值。
除去布尔型和拓展的字符型,其余都可以划分为带符号和无符号两种。
注意:类型转换时切记不要将无符号对象赋给一个负值。
二.变量:提供一个具体的,可供程序操作的存储空间
初始化:列表初始化,默认初始化(没有指定初值)
变量声明(extern):使名字被程序所知。 变量定义:创建与名字相关的实体。
标识符:由数字,下划线和字母组成,其中必须以字母或者下划线开头。
名字的作用域:大多数以花括号分隔,同一个名字在不同作用域中可能指向不同的实体。名字的有效区域始于名字的声明,以声明语句所在的作用域末端为结束。作用域具有嵌套性,可以进行覆盖。
三.复合类型:基于其他类型定义的类型
1.引用:为对象起了另一个名字,引用类型引用另外一种类型。将声明符写成&d的形式来定义引用类型。(int &refVal = ival,必须进行初始化,有指定初值)
2.指针:“指向”另外一种类型的复合类型( int & *ip1,ip1是指向int型对象的指针)。指针存放某个地方的地址,必须使用取地址符&(int ival = 42; int *p = &ival)
空指针:int *p1 = nullptr; // 等价于 int *p1 = 0;
int *p2 = 0; //直接将p2初始化为字面常量0
//需要首先#include cstdlib
int 8 p3 = NULL; // 等价于int *p3 = 0;
void * 可以存放任意类型的地址。
四.const限定符:const对象一旦创建后其值不能再改变。
constexpr类型一定为常量,并且必须用常量表达式来初始化。
五.处理类型:
类型别名:typedef double wages; //wages是double的同义词
using SI = Sales_item; //SI是Sales_item的同义词