结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。如下定义一个学生信息的结构体: struct student{ int number; char sex[3]; char name[10]; srtuct birthday birth;//birthday 是结构体类型的数据,这里没有写出来 char dep[20];}这个结构体有三种类型的数据,可以看出结构体里还可以有结构体类型、共用体的类型的数据。 共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体和结构体的区别:1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。 2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。 3.共用体不能赋初值。只要理解了共用体了结构体他们的区别应该能分清楚。 枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。枚举是比较特别的类型,有很多的细节,你可以翻阅书本继续理解。
共用体定义和结构体相同,只是它们占用内存空间不一样,共用体所占内存是其成员变量中占内存最大的成员变量的内存空间,而结构体是所有成员变量所占内存空间的总和。
共用体变量所有成员公用一块内存单元,虽然每个成员都可以被赋值,但只有最后一次赋予的成员值能够保存而且有意义,前面赋予的曾与之被后面赋予的曾与之所覆盖。
在实际问题中,有些变量的取值被限定在一个有限的范围内。如果用整数或字符来表示这些数据,既不直观又不容易理解。为此,C语言提供了一种称为“枚举”的类型。在枚举类型的定义中列举所有可能的取值,被说明该“枚举”类型变量取值不能查过定义的范围。枚举类型是一种基本类型,而不是一种构造类型,因为它不能分解为任何基本类型。
在c++中,结构体没有成员函数,就是只有属性,没有功能;
而类具有成员函数和成员变量。
还有一点就是默认访问属性不一样,在结构体中,默认访问属性是公有的(public),而类如果不声明则默认为私有的(private)。