学数据结构对一些C语言语法的反思.doc

学数据结构对一些C语言语法的反思.doc

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

学数据结构对一些C语言语法的反思 分类: c/c++2012-08-10 22:23700人阅读评论(0)收藏举报 第一个反思:typedef与结构体的反思 例1.1 [cpp] view plaincopyprint? span style=font-size: 14px;typedef struct LNode { int data; struct LNode *next; }LNode_A;/span typedef struct LNode { int data; struct LNode *next; }LNode_A; 这个是在学习链表时,其定义的一个结构体引起的反思。 typedef在C中的语法:给已有的数据类型(char int long)定义一个别名,例如 tyepdef int bit_4; 简化比较复杂的结构类型声明;此例子正事如此。 该代码应该可以看成三部分组成: [cpp] view plaincopyprint? span style=color: rgb(51, 51, 255); font-size: 14px;typedef/spanspan style=font-size: 14px; /spanspan style=color: rgb(255, 0, 0); font-size: 14px;struct LNode { int data; struct LNode *next; }/spanspan style=color: rgb(255, 153, 255); font-size: 14px;LNode_A/spanspan style=font-size: 14px;;/span typedef struct LNode { int data; struct LNode *next; }LNode_A; 大红色部分为声明一个名为LNode的结构体类型,typedef “红色部分” LNode_A 这一句是给结构体LNode取个别名LNode_A. 那这样做的好处在哪里呢? 如果你要声明一个结构体变量,可以由原来的struct LNode a 简化为 LNode_A a; 则例1.1也可以写成: [cpp] view plaincopyprint? span style=font-size: 14px;typedef struct LNode { int data; LNode_A *next; }LNode_A;/span typedef struct LNode { int data; LNode_A *next; }LNode_A; 另外,要注意“结构体类型定义”与“结构体变量定义”的区别 [cpp] view plaincopyprint? span style=font-size: 14px;struct A{ ...... ...... };/span struct A{ ...... ...... }; 以上代码是结构体类型定义,定义{}中的结构为一个名词为“A”的数据类型; [html] view plaincopyprint? span style=font-size: 14px;struct { ....... ....... }A;/span struct { ....... ....... }A; 以上代码是结构体变量定义,其中A为一个匿名的结构体数据类型的变量。A的本质是变量,是占用内存空间的。 更详细的结构体说明,参考链接/view/4a1f961859eef8c75fbfb384.html 第二个反思:指针作为函数参数传递 在链表章节中,一开始我很不解,为什么传递链表的头指针时,形参定义的是Linklist *L,而Linklist本身就是一个结构体指针,也就是说,用的是指向指针的指针; 看两端代码: 程序1: [cpp] view plaincopyprint? span style=font-size: 14px;void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么? if(p) free(p); } /span void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char

文档评论(0)

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

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

1亿VIP精品文档

相关文档