首页 > 代码库 > 数据封装-结构体
数据封装-结构体
结构体类型作用
*结构体类型允许程序员把一些分量聚合成一个整体,用一个变量表示。
*一个结构体的各个分量都有名字,把这些分量称为成员(member)。
*由于结构体的成员可以是各种类型的,程序员能创建适合于问题的数据集合。
结构体类型的定义
*定义结构体类型中包括哪些分量
*格式:
struct 结构体类型名{
字段声明;
};
注意
*字段名可与程序中的变量名相同
*在不同的结构体中可以有相同的字段名
*结构体成员的类型可以是任意类型,当然也可以是结构体类型
结构体变量的初始化
studentT student1={“00001”,“张三”,87,90,77};
定义结构体类型的同时定义变量
struct 结构体类型名{ struct{
字段声明; 字段声明;
}结构体变量; }结构体变量;
区别:前者可以继续用结构体类型名定义变量
结构体变量的赋值
同类型的结构变量之间可以相互赋值,如
student1=student2;
将student2的成员对应赋给student1的成员
这点很重要!!
指向结构体的指针
*直接定义指针变量
studentT *sp;
*也可以在定义结构体类型的同时定义指向结构体的指针
struct 结构体类型名{
字段声明;
} *结构体指针;
通过指针操作记录
*给结构体指针赋值,如:
sp = &student1;
*结构体指针的引用:
(*指针).成员 如:(*sp).name
指针->成员 如:sp->name
*->是所有运算符中优先级最高的
*通常程序员习惯使用第二种方法
动态分配结构体的空间
v指向结构体指针的另一种用法是存储动态申请到的内存的首地址。用法和申请普通的动态变量一样。如:
studentT *sp;
sp = new studentT;
结构体数组
*用于描述个体的集合
*定义格式:
studentT studentArray[SIZE]
指针与结构体数组
*与普通的指针一样,指向结构体的指针也能够用来指向一个结构体数组。此时,对指针加1就是加了该结构体的大小。
指向结构体的指针作为参数
*因为结构体是值传递,当希望把函数内部对结构体的修改返回给主调函数时,可以用指针传递或引用传递
*由于结构体一般占用的内存量都比较大,值传递既浪费空间又浪费时间。因此可用指针传递或引用传递
*指针传递形式比较繁琐,所以C++通常用引用传递
*引用传递的问题是函数中可以修改实际参数,要控制函数中不能修改实际参数,可以加const限定
引用传递&加const=节约内存,提高函数调用速度,安全可靠
函数返回结构体返回的是结构体的复制(对类而言也是如此,这样的话就会调用拷贝构造函数)
数据封装-结构体
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。