C语言程序设计 课件 9.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 其他数据类型预编译与位操作 9.1 结构体与共用体 9.2 void类型 9.3 类型更名 9.4 C预处理器 9.5 位运算 9.1 结构体与共用体 9.1.1 结构体类型 结构是一种构造数据类型 用途:把不同类型的数据组合成一个整体 1. 定义一个结构类型的一般形式 2. 结构体变量的定义 定义结构体类型变量的3种方法 先定义结构类型,再定义变量名 在定义类型的同时定义变量 不定义结构类型标识符,直接定义结构变量 3. 结构变量的初始化 一般格式 结构类型 结构变量名={初始值表 }; 4. 结构变量的引用 对结构类型数据的整体引用 赋值运算 允许两个相同结构的结构变量直接赋值 例:struct student li,zhang={zhangsan,20,78,92,83,75,69}; li=zhang; 但li={ “li si”,19,76,56,90,69,80};是非法的 注意其与初始化的区别 求结构类型数据的字节数 结构变量各成员在内存中连续存放, sizeof(变量名); 或sizeof(类型名); 求得 结构类型变量成员的引用 引用规则 结构变量除同类型赋值外,不能整体引用,只能引用结构变量的成员 例9-2 给结构体变量赋值并输出其值。 #include stdio.h void main () { struct student { int num; char *name; char sex; float score; } boy1,boy2; boy1.num=102; boy1.name=Zhang ping; printf(input sex and score\n); scanf(%c %f,boy1.sex,boy1.score); boy2=boy1; printf(Number=%d\nName=%s\n,boy2.num,boy2.name); printf(Sex=%c\nScore=%3.2f\n,boy2.sex,boy2.score); } 嵌套结构中成员的引用 5. 结构体数组 结构体数组的定义 三种形式: 结构体数组初始化 struct student { int num; char *name; char sex; float score; }boy[5]={{101,Liping,’M’,45}, {102,Zhang ping,’M’,62.5}, {103,He fang,’F’,92.5}, {104,Cheng ling,’F’,87}, {105,Wang ming,’M’,58}}; 6. 结构体指针 (2)结构体指针变量的引用 #include stdio.h void main () { struct student { int num; char *name; char sex; float score; } boy1={102,Zhang ping,M,78.5}, *pstu; pstu=boy1; printf(Number=%d\nName=%s\n,boy1.num,boy1.name); printf(Sex=%c\nScore=%f\n\n,boy1.sex,boy1.score); printf(Number=%d\nName=%s\n,(*pstu).num,(*pstu).name); printf(Sex=%c\nScore=%f\n\n,(*pstu).sex,(*pstu).score); printf(Number=%d\nName=%s\n,pstu-num,pstu-name); printf(Sex=%c\nScore=%f\n\n,pstu-sex,pstu-score); } (3)指向结构体数组的指针 注意点: 如p的初值为stu,即指向第一个元素,则p+1指向下一个元素的起始地址 例:(++p)-num 先使p自加1,然后得到它指向的元素中的num成员值 (p++)-num 得到p指向的元素中的num成员值,然后p自加1,指向下一个元素 指针p已定义为指向struct student类型的数据,它只能指向一个结构型数据,而不能指向一元素中的某成员 例:p=stu[2].num 则不正确 可以用强制类型转换 例:p=(struct student *)stu.num 例9-5 用指针变量输出结构数组。 #include stdio.h

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档