陕西师范大学《C语言程序设计》第三章结构类型.pptxVIP

陕西师范大学《C语言程序设计》第三章结构类型.pptx

  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文档。上传文档
查看更多
第三章 结构类型枚举常量符号化 ? ?符号?不是具体的数字来表?程序中的数字枚举? ?枚举?不是定义独?的const int变量枚举? 枚举是?种?户定义的数据类型,它?关键字 enum 以如下语 法来声明:enum 枚举类型名字 {名字0, …, 名字n} ;? 枚举类型名字通常并不真的使?,要?的是在?括号?的名字, 因为它们就是就是常量符号,它们的类型是int ,值则依次从0 到n 。如:enum colors { red, yellow, green } ;? 就创建了三个常量, red的值是0, yellow是1,?green是2。? 当需要?些可以排列起来的常量值时,定义枚举的意义就是给 了这些常量值名字。? 枚举量可以作为值? 枚举类型可以跟上enum作为类型? 但是实际上是以整数来做内部计算 和外部输?输出的套路:?动计数的枚举? 这样需要遍历所有的枚举量或者需要建?? 个?枚举量做下标的数组的时候就很?便了枚举量? 声明枚举量的时候可以指定值? enum COLOR { RED=1, YELLOW, GREEN = 5};枚举只是int? 即使给枚举类型的变量赋不存在的整数值也没有任何 warning或error枚举? 虽然枚举类型可以当作类型使?,但是实际上 很(bu)少(hao) ?? 如果有意义上排?的名字,?枚举?const int ? 便? 枚举?宏( macro)好,因为枚举有 int类型结构声明结构类型初学者最常?的 错误:漏了这个分号!在函数内/外?? 和本地变量?样,在函数内部声明 的结构类型只能在函数内部使?? 所以通常在函数外部声明结构类型, 这样就可以被多个函数所使?了声明结构的形式struct point {int x;int y;};struct point p1, p2;p1 和 p2 都是point ??有x和y的值struct {int x;int y;} p1, p2;p1 和 p2都是?种 ?名结构,??有 x和ystruct point {int x;int y;} p1, p2;p1和p2都是point ??有x和y的值t对于第?和第三种形式,都声明了结构point。但是第?种形式没有声明point,只是定义了两个变量结构变量struct date today;today.month=06;today.day=19;today.year=2005;monthdayyea构的初始化结构成员? 结构和数组有点像? 数组?[]运算符和下标访问其成员? a[0] = 10;? 结构? .运算符和名字访问其成员? today.day? student.?rstName? p1.x? p1.y结构运算? 要访问整个结构,直接?结构变量的名字? 对于整个结构,可以做赋值、取地址,也可以 传递给函数参数? p1 = (struct point){5, 10}; // 相当于p1.x = 5; p1.y = 10;? p1 = p2; // 相当于p1.x = p2.x; p1.y = p2.y;数组?法做这两种运算! 复合字?量? today = (struct date) {9,25,2004};? today = (struct date) {.month=9, .day=25, year=2004};结构指针? 和数组不同,结构变量的名字并不是 结构变量的地址,必须使?运算符? struct date *pDate = today;结构与函数结构作为函数参数? 整个结构可以作为参数的值传?函数? 这时候是在函数内新建?个结构变量,并 复制调?者的结构的值? 也可以返回?个结构? 这与数组完全不同输?结构? 没有直接的?式可以?次scanf? 个结构? 如果我们打算写?个函数来读? 结构? —? 但是读?的结构如何送回来呢?? 记住C在函数调?时是传值的? 所以函数中的p与main中的y是不 同的? 在函数读?了p的数值之后,没 有任何东?回到main,所以y还 是 {0, 0}#include stdio.hstruct point {int x;int y; };void getStruct(struct point);void output(struct point);void main( ) {struct point y = {0, 0};getStruct(y);output(y); }void getStruct(struct point p) { scanf(%d, p.x);scanf(%d, p.y); printf(%d, %d, p.x, p.y); }void output(struct point p) { print

您可能关注的文档

文档评论(0)

逍遥子 + 关注
实名认证
文档贡献者

互联网搬运工

1亿VIP精品文档

相关文档