- 1、本文档共96页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 - 计算机与通信工程学院.ppt
Basic of Basic 结构体类型可以嵌套定义,即一个结构体类型中的某些成员又是其他结构体类型,但是这种嵌套不能包含自身,即不能由自己定义自己。例如,以下定义一个表示日期的结构体类型:struct date{ int day;int month;int year; }; 由此定义的struct member结构如图9-1所示。 上述语句定义了两个struct student类型的变量student1和student2,它们具有struct student类型的结构,如图9-2所示。 系统为所定义的结构体变量按照结构定义时的组成,分配存储数据的实际内存单元。结构体变量的成员在内存中占用连续存储区域,所占内存大小为结构体中每个成员的长度之和。 为了使用方便,人们通常用一个符号常量代表一个结构体类型。在程序开头,加上命令: #define STU struct student 这样在程序中,STU与struct student完全等效。 例如,先定义结构体类型: STU { int num; char name[20]; char sex; int age; float score; char addr[40]; }; 然后就可以直接用STU定义变量。例如: STU student1,student2; 2.在定义结构体类型的同时定义结构体变量 它的一般形式为: struct 结构体名 { 成员表列 } 变量名表列; 3. 直接定义结构体类型变量 它的一般形式为: struct { 成员表列 } 变量名表列; 9.3结构体类型数组9.3.1 结构体数组的定义 数组各元素在内存中连续存放,如图9-3所示。 9.3.2 结构体数组的初始化 struct student { char name[20]; long num; int age; char sex; float score; }students[5]= { {″Zhu Dongfen″,3021101,18,′M′,93}, {″Zhang Fachong″,3021102, 19,′M′,90.5}, {″Wang Peng″,3021103, 16,′M′,85}, {″Zhan Hong″,3021104, 16,′F′,95}, {″Li Linggou″, 3021105,20,′F′,67} }; 如果赋初值的数据组的个数与所定义的数组元素相等,则数组元素个数可以省略不写。此时系统会根据初始化时提供的数据组的个数自动确定数组的大小。 如果提供的初始化数据组的个数少于数组元素的个数,则方括号内的元素个数不能省略,例如: struct student { … }students[5]={{…},{…},{…}}; 只对前3个元素赋初值,其他元素未赋初值,系统将对数值型成员赋以0,对字符型数据赋以“空”串即“\0”。 9.3.3 结构体数组的引用 void main() { struct stu s[N]={ {GA002,69},{GA005,85},{GA003,76}, {GA004,83},{GA001,91},{GA007,72}, {GA008,64},{GA006,87},{GA000,99}, {GA009,80}},t; int i,j; for(i=0;iN-1;i++) /*冒泡法排序,降序*/ for(j=i+1;jN;j++) if(s[i].scores[j].score) {t=s[i];s[i]=s[j];s[j]=t;} for(i=0;iN;i++) { if(i%4==0) /*每行输出4个学生记录*/ printf(\n); printf(%s %4d ,s[i].num,s[i].score); } } 指向结构体变量的指针定义的一般形式为: struct 结构体名 *指针变量名; 例如: struct stu *pd,date1;结构体指针变量也必须先赋值后使用。例如: pd=date1,使指针pd指向结构体变量date1。 有了结构体指针变量,就能更方便地访问结构体变量的各个成员。其访问的一般形式为: 指针变量-结构体成员名 或者 (*指针变量).结构体成员名例如:
文档评论(0)