结构体的使用
结构体的定义
结构体可以将若干个不同的数据类型的变量或数组封装在一起,以储存自定义的数据结构,方便储存一些符合数据。基本格式:struct Name{ // 一些基本的数据结构或自定义的数据类型 };
其中,定义了studentInfo型的Alice和Bob代表两个结构体变量,stu[1000]代表一个结构体数组,也可以通过studentInfo Alice;和studentInfo stu[1000];来定义
注意:结构体能定义除了自己本身之外的任何数据类型。虽然不能定义自己本身,但可以定义自身类型的指针变量
访问结构体内的元素
访问结构体内元素有两种方式:“.”操作和“->”操作。结构体指针变量内元素的访问只需要使用“->”跟上要访问的元素即可,且使用“*”或“->”访问结构体指针变量内元素的写法完全等价的
结构体的初始化
利用构造函数的方法进行结构体的初始化,它可以直接定义在结构体中。结构函数的特点是它不需要写返回类型,且函数名与结构体名相同。一般来说,对一个普通定义的结构体,其内部会生成一个默认的构造函数(但不可见)
如果手动提供id和gender的初始化参数,可以通过提供初始化参数来对结构体内的变量进行赋值即可,其中_id和_gender都是变量名。只要不和已有变量冲突,用a、b或其它变量名都可以
当然,构造函数也可以简化为一行
这样就可以在需要时直接对结构体变量进行赋值,studentInfo stu = studentInfo(10086, 'M');
注意:如果自己重新定义了构造函数,则不能不经初始化就定义结构体变量,此时默认生成的构造函数被覆盖了。为了既能不初始化就定义结构体变量,又能享受初始化带来的便捷,可以把默认生成的构造函数手动加上,这样,只要参数个数和类型不完全相同,就可以定义任意多个构造函数,以适应不同的初始化场合