预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共52页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章自定义数据类型7.1结构体 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体—自定义数据类型 结构体类型定义例structstudent {intnum; charname[20]; charsex; intage; floatscore; charaddr[30]; };结构体变量的定义 先定义结构体类型,再定义结构体变量 一般形式:直接定义结构体变量 一般形式:说明 结构体类型与结构体变量概念不同 类型:不分配内存;变量:分配内存 类型:不能赋值、存取、运算;变量:可以 结构体可嵌套 结构体成员名与程序中变量名可相同,不会混淆 结构体类型及变量的作用域与生存期 结构体变量的引用 引用规则 结构体变量不能整体引用,只能引用变量成员 结构体变量的初始化 形式一:形式二:形式三:结构体数组 结构体数组的定义 三种形式:结构体数组初始化例统计后选人选票#include<iostream.h> #include<string> structperson {stringname; intcount; }leader[3]={“Li”,0,“Zhang”,0,”Wang“,0}; voidmain() {inti,j;stringleader_name; for(i=1;i<=10;i++) {cin>>leader_name; for(j=0;j<3;j++) if(leader_name==leader[j].name) leader[j].count++; } for(i=0;i<3;i++) cout<<leader[i].name<<leader[i].count<<endl; }结构体和指针 指向结构体变量的指针 定义形式:struct结构体名*结构体指针名; 例structstudent*p;指向结构体数组的指针用指向结构体的指针作函数参数 用结构体变量的成员作参数----值传递 用指向结构体变量或数组的指针作参数----地址传递 用结构体变量作参数----多值传递,效率低structdata {inta,b,c;}; voidmain() {voidfunc(structdata); structdataarg; arg.a=27;arg.b=3;arg.c=arg.a+arg.b; cout<<"arg.a="%d<<arg.a<<"arg.b="<<arg.b<<"arg.c=“<<arg.c; cout<<"CallFunc()....\n"; func(arg); cout<<"arg.a="%d<<arg.a<<"arg.b="<<arg.b<<"arg.c=“<<arg.c; } voidfunc(structdataparm) {cout<<“parm.a="<<parm.a<<“parm.b="<<parm.b<<“parm.c=“<<parm.c; cout<<"Process...\n"; parm.a=18;parm.b=5;parm.c=parm.a*parm.b; cout<<“parm.a="<<parm.a<<“parm.b="<<parm.b<<“parm.c=“<<parm.c; cout<<"Return...\n"; }structdata {inta,b,c;}; main() {voidfunc(structdata*parm); structdataarg; arg.a=27;arg.b=3;arg.c=arg.a+arg.b; cout<<"arg.a="%d<<arg.a<<"arg.b="<<arg.b<<"arg.c=“<<arg.c; cout<<"CallFunc()....\n"; func(&arg); cout<<"arg.a="%d<<arg.a<<"arg.b="<<arg.b<<"arg.c=“<<arg.c; } voidfunc(structdata*parm) {cout<<“parm->a="<<parm->a<<“parm->b="<<parm->b<<"parm->c="<<parm->c; cout<<"Process...\n"; parm->a=18;parm->b=5;parm->c=parm->a*parm->b; cout<<“parm->a="<<parm->a<<“parm->b="<<parm->b<<"parm->c="<<parm->c; cout<<"Return...\n"; }用结构体变量和指向结构体变量的指针构成链表 链表中的每一个元素称为“结点” 头指针head,它存放一个地址。该地址指向一个元素。 每个结点包括两个部分 用户需要用的实际数据 下一个结点的地址 链表中各元素在内存中的存储