typede的详解.pptVIP

  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文档。上传文档
查看更多
typede的详解

typedef的专题总结;用法一:为现有数据类型定义同义词;用法二:typedef 还可以掩饰复合类型,如指针和数组;用法三:在链表中的应用;用法四:代码简化和促进扩平台开发;C++实例;补充1:链表的三种定义结构体;第二种: struct??student?? {? ????int?num?;? ????char?name[8];?? ????char?sex;? ????double?score[2];?? }stu1;?? //方法二 此处定义结构体student时,顺便定义了结构体变量stu1 。 第三种: ?typedef?struct??student?? {? ???int?num?;? ???char?name[8];?? ????char?sex;? ????double?score[2];? }stu;????//方法三?注意:此处并非结构体变量,而是结构体类型student和stu;定义结构体类型 ;上面的代码包含了两个结构体变量:point_a和point_b,它们的数据类型相同,都是struct {int x; int y;}类型。这种说法可能有点别扭,习惯上说point_a和point_b都是结构体类型,为什么偏偏要说是struct {int x; int y;}类型呢?因为这种说法更加精确。比如在第一个例子中,对于“unsigned int a, b;”这条语句,我们可以说a和b都是整数类型,但更精确地说,它们应该是unsigned int类型。 既然struct {int x; int y;}是一种自定义的复杂数据类型,那么如果我们要定义多个struct {int x; int y;}类型的变量,应该如何编写代码呢?其实很简单,就当struct {int x; int y;}是一个简单数据类型就可以了: struct?{int?x;?int?y;}?var_1;?//?定义了变量var_1 ? struct?{int?x;?int?y;}?array_1?[10];?//?定义了数组array_1 ? struct?{struct{int?x;?int?y;}?part1;?int?part2;}?cplx;? 上面的第三行定义了一个cplx变量,它的数据类型是一个h复杂的结构体类型,有两个成员:part1和part2。part1是struct {int x; int y;}类型的,part2是int类型的。 从上面的例子可以看出,如果在程序中需要多处定义struct {int x; int y;}类型的变量,就必须多次输入“struct {int x; int y;}”这一类型名称,况且,如果在结构体中有某个成员是struct {int x; int y;}类型的,还会使得定义变得非常繁杂而且容易出错。为了输入程序的方便,同时为了增强程序的可读性,我们可以把struct {int x; int y;}这一数据类型定义为标识符“Point”,那么上面的程序就会变得更容易理解: ;typedef?struct?{int?x;?int?y;}?Point; ? Point?var_1;?//?定义了变量var_1 ? Point?array_1?[10];?//?定义了数组array_1 ? struct?{Point?part1;?int?part2;}?cplx;?//?定义了复杂类型变量cplx? 需要说明的是,我们还可以使用下面的方法来定义结构体变量: struct?t_Point?{ ? int?x;?int?y;};?//?注意,这里最后一个分号不能省略 ? int?main(int?argc,?char*?argv[]) ? { ? struct?t_Point?a,?b; ? //?.?.?. ? return?0; ? }? 显然,这种方法没有C++ typedef更加直观(在C++中,main函数第一行的struct关键字可以省略,但在标准C中,省略该关键字会出现编译错误)。 此外,对于定义链接队列中的结点,我们可以这样实现: typedef?struct?t_node?{ ? int?Value; ? struct?t_node?*next; ? }?Node; ? 当然也可以这样定义: ? typedef?strcut?t_node?Node; ? struct?t_node?{ ? int?Value; ? Node?*next; ? };?;类是面向对象程序设计语言中引入的一种新的数据类型,既然是数据类型,就可以使用C++ typedef对其进行定义: typedef?class?{ ? private: ? int?a; ? public: ? int?b; ? }?M

文档评论(0)

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

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

1亿VIP精品文档

相关文档