电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第十一章 结构体与共用体链表VIP免费

第十一章  结构体与共用体链表_第1页
1/38
第十一章  结构体与共用体链表_第2页
2/38
第十一章  结构体与共用体链表_第3页
3/38
第十一章结构体与共用体第十一章结构体与共用体简单链表简单链表例题1:某学生,姓名是Li,学号是9800,化学成绩是85。请编写程序输出这些数据。见程序:main(){charname[4]="Li";intnum=9800;intscore=85;printf("%s,%d,%c,%f",name,num,sex,score);}如果有100个学生,则更麻烦.TC允许我们定义自己的数据类型,以解决特定的实际问题。为了很好地解决例题1,我们可以定义一种叫structstudent的数据类型。结构体类型也是属于一种构造类型数据,它将不同类型的数据项组织成一个组合项,这些组合项中的数据项是互相联系的。定义一个结构体类型的一般形式:struct结构体名{成员表列};例如:对于一名学生,有如下不同类型的属性:学号、姓名、年龄、性别、成绩、地址等。要表示一个学生的六个方面不同类型的有关数据,就可以定义一个结构体类型。§11.1结构体类型概述structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];};其中:struct是关键字,表示结构体类型。student是结构体类型名,structstudent和标准类型名(int、float)一样可以用作定义变量的类型。花括号内是结构体中的各个成员,每个成员都应进行类型说明。§11.1结构体类型概述结构体名相当float,int分号不能少成员表列一、先定义结构体类型,再定义变量名例如:structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];};structstudentstudent1,student2;上面的student1和student2是structstudent类型的变量,它们具有structstudent类型的结构。定义结构体变量后,系统为变量分配内存单元。可用sizeof(student1)来计student1和student2各占49个字节。§11.2定义结构体类型变量的方法二、在定义结构体类型的同时定义变量例如:structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];}student1,student2;§11.2定义结构体类型变量的方法三、直接定义结构体类型变量(不写类型名)例如:struct{intnum;charname[10];charsex;intage;floatscore;charaddr[30];}student1,student2;§11.2定义结构体类型变量的方法说明:1.定义类型与定义变量是不同的,在编译时对类型不分配空间,只对变量分配存储空间。2.只能对变量赋值、存取或运算,而对结构体类型不可以。3.对结构体中的成员可以单独使用,它的作用和地位相当于普通变量。4.可以用sizeof运算符测一个类型数据的长度。n=sizeof(structstudent)或n=sizeof(student1)n=sizeof(int)n=sizeof(float)§11.2定义结构体类型变量的方法5.成员也可以是结构体变量。structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}student1,student2;structdate{intmonth;intday;intyear;};numnamesexagebirthdayaddrmonthdayyear一个结构体类型的变量不能作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入、输出和运算。scanf(“%d,%s,%c,%d,%f,%s”,&student1);printf(“%d,%s,%c,%d,%f,%s”,student1);§11.3结构体类型变量的引用引用方式:结构体变量名.成员名例如:scanf(“%d”,&student1.num);student2.num=student1.num;printf(“%d,%d”,student1.num,student2.num);“.”是成员运算符,表示在student1结构体变量中找出成员num的值。其优先级最高,结合性为自左向右。如student1.num+100;若结构体类型嵌套一个结构体类型,则采用逐级访问的方法,只能对最低级的成员进行访问。student1.birthday.year访问结构体变量student1的成员出生年份。而不能用student1.birthday访问birthday。结构体变量的成员可以和普通变量一样进行各种运算student2.score=student1.score;student1.age++;++student1.age;例如:structstudent{longintnum;charname[20];charsex;charaddr[20];}a={89031,"LiLin",'M',"123BeijingRoad"};Printf(“%ld,%s,%c,%s\n”,a.num,a.name,a.sex,a.addr);§11.4结构体类型变量的初始化结构体数组中的每个元素都是一个结构体类型的数据,它们都分别包括各个成员项。例如:要表示3名学生的学号、姓名和成绩。structstudent{intnum;charnam...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第十一章 结构体与共用体链表

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部