h第八章结构和联合.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
h第八章结构和联合

第8章 结构和联合 8.1 结构 8.1.1 结构类型 由若干个成员(域)组成。 每个成员具有自身的名字和数据类型, 同一结构中的成员名不能相同。 例如, 一个学生的信息,它包括以下5项: 学号、姓名、性别、年龄、成绩 8.1.2 结构类型的定义 一般形式: struct 结构名 { 类型1 成员名1; 类型2 成员名2; … 类型n 成员名n; }; 说明: (1) 结构定义描述了结构的组织形式,但在编译时并不分配存储空间。 (2) 结构的成员可以是简单变量、数组、指针、结构等。 struct date/*struct32个关键字之一*/ { int day; char month[4]; int year; }; struct stud { long num; char name[20]; char sex; struct date birthday; 嵌套结构stud的逻辑结构 char *addr; }; (3) 结构定义可在函数内部,也可在函数外部。 (4) 定义结构类型时,注意不能遗漏最后的分号。 8.1.3 结构变量 一、结构变量的声明 三种定义方法 1.在定义结构类型的同时声明变量。例如: struct student { long num; char name[20]; char sex; int age; float score; }s1,s2,s3; 2.直接声明结构类型变量 例如: struct { long num; char name[20]; char sex; int age; float score; } s1,s2,s3;/*(这里不同于前一种方法之处在于struct后面不出现结构名,故不便于在源程序中的其他地方声明新的变量)*/ 3.先定义结构类型再声明变量 例如: struct student { long num; char name[20]; char sex; int age; float score; }; struct student s1,s2,s3; 注意: (1) 先定义类型再声明变量。 (2) 存储空间分配是按照各成员项的定义顺序进行的。 (3) 每个结构变量存储空间的大小是各成员项所占空间之和。例如: sizeof( s1 )的值为31; sizeof( struct student )的值为31; sizeof( float )的值为4。 (4) 结构变量中的成员可单独使用。 结构变量的初始化 struct student { long num; char name[20]; char sex; int age; float score; }s1,s2={80101,Lilin,M‘,18}; 三、结构变量的引用 形式: 结构变量名.成员名 main( ) { struct student { long num; char name[20]; char sex; int age; float score; } s1,s2={80101,Lilin,M,18}; printf( %ld\n %s\n %c\n , s2.num,s2.name,s2.sex); s1=s2; /*结构变量还可以赋值传值*/ printf( %ld\n %s\n %c\n, s1.num,s1.name,s1.sex); } 注意: (1)不能将一个结构变量作为一个整体进行输入和输出。 例: scanf(%ld%s%c,s1); printf(%ld\n %s\n %c\n,s2); 只能对各个成员分别进行输入和输出,如: s1.num=80101; strcpy(s1.name,Liling); (2)结构变量可以进行整体赋值,但不能整体进行比较。 if(s1s2) printf(%s,s1.name); (3) 如果成员本身又属一个结构类型,则要逐级地找到最低的一级成员。只能对最低级的成员进行存取。 … 8.2

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档