数据结构构造类型学习教案.pptx
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPTX 页数:37 大小:226KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构构造类型学习教案.pptx

数据结构构造类型学习教案.pptx

预览

免费试读已结束,剩余 27 页请下载文档后查看

10 金币

下载此文档

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

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

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

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

会计学C语言描述关联数据的方法:数组:元素为同一类型.如:doubletest[30][2];结构体:元素为不同类型.如:structstudent{longnumber;charname[6];intgrade;};枚举类型:如:enumsex{male,femal};说明:枚举类型{}中为常量(chángliàng)标识符,从左至右用数值0,1,2…来表示其值.第二节结构体类型的定义形式:struct结构名{成员(chéngyuán)说明表列};说明:1.结构名为用户自定义标识符;2.成员(chéngyuán)表列也称为域表列;3.可以嵌套定义例10.1分别定义代表日期,商品,学生信息的结构体类型.日期结构体类型:structdate{intyear;intmonth;intday;};商品结构(jiégòu)体类型:structproduct{char*partname;doubleprice;intstock;};学生结构(jiégòu)体类型:structdate{intyear,month,day;};structstudent{longnumber;char*name;structdatebirthday;intgrade;};structstudent{longnumber;char*name;struct{intyear,month,day;}birthday;intgrade;};student的结构(jiégòu):出生年月学号姓名年月日总分第三节结构体变量(biànliàng)一.结构体变量(biànliàng)的定义方法1.先定义类型,后说明变量(biànliàng)如:structdate{intyear;intmonth;intday;};structdatex,y;方法2.在定义类型的同时说明变量(biànliàng)如:structdate{intyear;intmonth;intday;}x,y;含义:x:x.yearx.monthx.dayy:y.yeary.monthy.day方法(fāngfǎ)3:定义的结构类型仅供程序一处引用,即只定义一次变量.如:struct{longnum;doublescore;}a,b;注意:1.一个结构体变量的存储开销(内存字节总数)为所有成员字节数的总和;2.当两个结构变量具有完全相同的结构类型时,a=b赋值正确,即把a中的每一个成员的值一一赋给b.如上a变量的存储字节为4+8=12.二.结构体变量的引用形式:结构体变量名.成员名例10.4假设有如下说明:structstudent{longnum;charname[10];struct{intyear,month,day;}birth;intscore;}li,hu,tao;以下均正确(zhèngquè)的引用语句:(1)scanf(“%ld”,&li.num);(2)hu.birth.year=1973;(3)sum=sum+tao.score;(4)tao.num++;说明:多级引用(yǐnyòng)成员运算符逐级引用(yǐnyòng)其最底层的成员。三.结构(jiégòu)体变量的初始化形式:结构(jiégòu)体变量名={初值表};例10.5structstudent{longnum;charname[10];struct{intyear,month,day;}birth;intscore;}li,ma={2001,“马红”,{1973,5,6};602};第四节结构数组当结构变量有许多时,用结构数组来表示,数组的每一个元素均为结构体.一.结构体数组的定义形式(xíngshì):结构类型数组名[常量表达式]例10.6struct{char*name;longnum;charsex;struct{intyear,month,days;}birth;}p[30];即描述(miáoshù)如下:namenumsexyearmonthdaysp[0]p[1]…p[29]二.结构体数组的引用形式:数组名[下标].成员名例7设有如下数组说明语句#defineF“%s,%s\n”struct{char*code;char*name;floatprice;char*place;struct{intyear,month,day;}validay;}x[100];则for(i=0;i<=100;i++)if(x[i].validay.year<=2001)printf(F,x[i].code,x[i].name);功能(gōngnéng)