- 1、本文档共194页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构说明(续) 说明形式: struct 结构类型名 { 成员类型1 成员名1; 成员类型2 成员名2; … 成员类型n 成员名n; }; 结构类型名和成员名都是自定义的标识符 末尾不要忘记加分号; 成员可以是任何类型 结构说明(续) 如下面为用以表示日期相关信息的结构说明: struct date { int day; int month; int year; char week_name[4]; }; 上面的结构说明,只是定义了一个结构的模板(template)或称为结构的框架,而并未定义结构的对象,也不为它分配存储空间。有了这样的结构模板说明后,一个结构变量可定义为: struct date d1, d2; 注意:在此,关键字struct和结构名date都不可少,可以把struct date一起看作是某种类型说明符。 结构名 结构成员 结构说明(续):结构嵌套 结构成员可以具有各种类型,当然它也可以是其它的结构类型,即结构可以嵌套定义。如下面为描述个人信息(姓名、住址、单位、薪水、生日)的结构说明: struct person { char name[32]; char address[64]; char department[64]; double salary; struct date birthdate; }; struct person table[100]; 结构说明(续) 注意:结构成员的类型不能是该结构本身,因为它无法确定此结构的边界。但它可以是指向本身结构的指针。例如: struct keyword { char *name; int count; struct keyword next; }; struct keyword { char *name; int count; struct keyword *next; }; 错误 正确 结构变量初始化 结构变量在定义时可以初始化,如: struct date d = { 15, 12, 2009, “Tue” }; 结构变量亦可通过整体赋值来初始化,如: struct date d1,d2 = { 14, 12, 2009,“Mon” }; d1 = d2; 结构成员的引用 通过 结构名 . 成员名 来访问结构成员,如: 若我们定义了结构变量:struct person xiaoLi; 则引用xiaoLi的薪水、出生年、月可写成: xiaoLi.salary = 3000; xiaoLi.birthdate.year = 1970; xiaoLi.birthdate.month = 8; strcpy( xiaoLi.name, “xiaoLi”); struct person { char name[32]; char address[64]; char department[64]; double salary; struct date birthdate; }; 结构成员的引用(续) 如定义:struct date *pd, d; (pd是指向struct date的指针) 则:pd = d; 或:pd = (struct date *) malloc(sizeof(struct date)); pd-year = 2009; strcpy(pd-week_name, “Mon”); 等等。 实际上,pd-year与(*pd).year 是完全等价的,这是由于在C语言中指向结构的指针使用非常频繁,因此,特为此设立了一个新运算符(-)。 结构指针变量 - 成员名 结构数组 当数组中的每一个元素都是同一结构类型的变量时,则称该数组为结构数组。例如: struct person table[100]; 【输入样例】41 Li 22 85.52 Zhao 23 903 Wang 20 87.94 Zhang 19 56.67?????????????????? 【输出样例】 4 Zhang 19 56.7 1 Li 22 85.5 3 Wang 20 87.9 2 Zhao 23 90.0 ???? 问题5.5*(续) 方案一:使用四个数组分别存储学生信息 int no[50], age[50]; char name[50][6]; float credit[50]; 方案二:使用结构表示学生信息 struct Studen
您可能关注的文档
- C程序设计_第三讲:程序设计方法-问题分析.ppt
- C程序设计英文课件:CHAPTE 2 Types,Operators and Expressions.ppt
- C程序设计英文课件:CHAPTE 3 Control Flow.ppt
- C程序设计英文课件:CHAPTE 4 Functions and Program Structure.ppt
- C程序设计英文课件:CHAPTE 5 Pointer and Arrays.ppt
- C程序设计英文课件:CHAPTE 6 Structures.ppt
- C程序设计英文课件:CHAPTE 7 Input and Output.ppt
- C程序设计英文课件:第一章 A Tutorial Introduction.ppt
- C程序设计英文课件:复习.ppt
- 从计算机工程教育看知识、能力与工程方法浅谈.ppt
文档评论(0)