为解决不同类型问题,C++中的数据类型产生了。数据类型分为基本类型和自定义类型。
关于数据类型的分类不尽相同,这里选取了下面这种:
基本类型:整型(int)、字符型(char)、布尔型(bool(注意一定是小写))、 浮点型(float、double)、空类型(void)。
自定义类型:指针类型(*)、数组(【】)、结构体(struct)、联合体(union)、枚举(enum)、类类型(class)。
基本数据类型的前四种在课本中都有详细介绍,这里要多说一句的就是整型int的长度等于机器的字长,16位机是2字节,32位机是4字节。
空类型不能用来定义变量。空类型用于指针和函数返回值,表示数据类型的不确定性。除了空类型之外,其他基本数据类型的前面都可以加修饰符:signed,unsigned,long,short。
指针的类型就是指向内存数据的类型。换句话说,指针本身是没有数据类型的。举个例子,引用的:
int*ptr;指针的类型是int*
char*ptr; 指针的类型是char*
int**ptr 指针的类型是int**
同一个数组内所有元素的数据类型都是相同的,数组占用的内存空间就是里面元素数据类型占用的内存空间乘它的元素个数。
typedef声明,把标识符声明成某数据类型的别名(可声明多个别名),将它当作数据类型使用。
结构体的定义是由一系列具有相同类型或者不同类型的数据构成的数据集合,每一个变量都会被分配相应的内存。
联合体与结构体的区别在于,所有成员变量共享一个内存空间,被分配的内存就是最大的变量所占的内存。
枚举,声明:enum 枚举类型名 {变量值列表};
枚举元素按常量处理,不能赋值,并且有默认值(也可以在声明时另行定义)。
这里插入 宏定义,借用前辈说法:“宏定义可以理解为简单的替换。”枚举与宏定义类似,不能赋值。(eg:# define PI 3.14159)
既然这样再提一下const,用来区分常量与变量,用法eg:const double PI=3.14159;
类类型,这里指的是class所以是不包括struct和union的?.....嗯不知道该讲什么。