计算机级2 C语言结构点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机级2 C语言结构点

结构体与共用体要点 一、概述 结构体(structure)是一种数据类型,它把互相联系的数据组合成一个整体。 把不同类型的数据组合成一个有机的整体,可以用结构体解决。 结构体中的每一项数据,称为结构体“成员”(member)或“分量”。 声明结构体类型的一般形式:struct 结构体名 {成员表列}; 声明各成员的形式:类型名 成员名; 例如:学生数据struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; }; 注意不要忽略最后的分号 student结构体类型占59个字节。 二、定义结构体类型变量的方法 1.先声明结构体类型再定义变量名 struct student student1, student2;要求指定为某一特定的结构体类型 2.在声明类型的同时定义变量 struct 结构体名 {成员表列 }变量名表列; 例如:struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; 3.直接定义结构体类型变量 struct {成员表列 }变量名表列; 几点说明: (1)类型与变量是不同的概念; (2)结构体中的成员可单独使用,其作用与地位相当于普通变量; (3)成员也可以是一个结构体变量; (4)成员名与普通变量名相同,不代表同一对象。 三、结构体变量的引用 (1)不能将结构体变量整体进行输入和输出,只能对各个成员分别进行输入和输出。 printf(%d,%s,%c,%d,%f,%s\n,student1);错误 (2)引用成员的方式:结构体变量名.成员名 student1.num=10010; student1.birthday.month=3;(若干个成员运算符) 当成员是另一个结构体变量时,应一级一级地引用成员。 仅在以下两种情况下,可以把结构体变量作为一个整体来访问。 (1) 结构体变量整体赋值 例、student2 = student1; (2)取结构体变量地址 例、printf(%x, student1); /*输出student1的地址 */ 四、结构体变量的初始化 struct student {long int num; /* 学号 */ char name[20]; /* 姓名 */ char sex; /* 性别 */ char addr[20]; /* 地址 */ }a = {89031, Li Lin, M, 123 Beijing Road}; 注意:不能在结构体内赋初值。 例、下面程序错误 struct student { long int num = 89031; char name[20] = Li Lin; char sex = M; char addr[30] = 123 Bejing Road; }a; 五、结构体数组 每个数组元素都是一个结构体类型数据 1.定义结构体数组 和定义结构体变量的方法相仿(三种方法) 2.结构体数组的初始化 在定义数组的后面加上:={初始表列}; struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu[3] = {{10101,Li Lin,  M, 18, 87.5, 103 Bejing Road}, {10102,Zhang Fun,M, 19, 99,  130 Shanghai Roaad}, {10104,Wang Min, F, 20, 78.5, 1010 Zhongshan Road} }; 六、指向结构体类型数据的指针 结构体变量的指针:就是该变量所占据的内存段的起始地址。 1.指向结构体变量的指针 (*p).num表示:p指向的结构体变量中的成员num 成员运算符“.”优先于“*”运算符,不能写成*p.num≡*(p.num) 三种表示形式: (1)构体变量名. 成员名 (2)(*p).成员名 该方式用得很少 (3)p-成员名 2.指向结构体数组的指针 注意: (1)p=stu;,则p++指向stu[1] (2)运算符“-”优先于“++”运算符 ++p-num:使p所指向的num成员值加1 (++p)-num:先使p+1,然后得到它指向的元素中的num

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档