欢迎来到天天文库
浏览记录
ID:40208947
大小:1.34 MB
页数:35页
时间:2019-07-26
《快速学会数据结构中的指针和结构体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指针指针的定义声明一个指针变量给指针赋值指针的运算自定义数据类型基本数据类型数据类型结构类型基本数据类型有哪些?如何使用?问题一:学籍管理问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用C语言程序存储并处理一组学生的学籍。单个学生学籍的数据结构学号(num):int型姓名(name):char[]型性别(sex):char型年龄(age):int型分数(score):float型单个学生学籍的数据结构如何定义?多个学生学籍的数据结构如何定义?解决办法定义一个结构体类型当已有的类型满足不了需要时,C语言
2、规定可以由用户自定义数据类型。structstudent{intnum;charname[10];charsex;intage;floatscore;};另一个例子定义一个结构体类型日期类型structdate{intmonth;intday;intyear;};定义一个结构体类型语法:struct结构体名称{成员列表;};定义一个时间类型Time,成员有时、分、秒。结构体变量的定义先定义结构体类型,再定义结构体变量一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名变量名
3、表列;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;说明结构体类型与结构体变量概念不同类型:不分配内存;变量:分配内存类型:不能赋值、存取、运算;变量:可以结构体的成员可以是一个结构变量结构体可嵌套结构体成员名与程序中变量名可相同,不会混淆结构体类型及变量的作用域与生存期例structdate{intmonth;intday;intyear;};structstudent{i
4、ntnum;charname[20];structdatebirthday;}stu;numnamebirthdaymonthdayyear例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu;numnamebirthdaymonthdayyear诸如学生花名册、通讯录之类的数据,最适合用结构体来处理。因为这类数据具有如下特点:每个人信息都是一个复合的构造数据,如由姓名、学号、性别、年龄、家庭住址、联系电话等“
5、成员”组成。不同的人,数据的值不同,但都有共同的成员组成。为将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用,C语言提供一种称为“结构”的数据类型。结构体也是构造类数据,但其成员可以是任何类型的。构造类型使用户可以象处理单个变量一样来处理复杂的数据结构。要在程序中使用结构必须:声明结构类型结构类型的声明描述该结构的成员名称和它们的数据类型。定义结构变量结构变量的定义是根据结构类型为所定义变量分配存储空间。9.3结构体变量的引用引用规则结构体变量不能整体引用,只能引用变量成员可以将一个结构体变量赋值给另一个结构体变
6、量结构体嵌套时逐级引用(只能对最低级的成员进行赋值或存取以及运算)成员(分量)运算符优先级:1结合性:从左向右引用方式:结构体变量名.成员名例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu1.num=10;stu1.score=85.5;stu1.score+=stu2.score;stu1.age++;例structstudent{intnum;charname[20];charsex;intag
7、e;floatscore;charaddr[30];}stu1,stu2;printf(“%d,%s,%c,%d,%f,%s”,stu1);()例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;stu2=stu1;()例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu1,stu2;nu
8、mnamebirthdaymonthdayyearstu1.birthday.month=12;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;if(stu1==stu
此文档下载收益归作者所有