暑假C语言学习总结之三

      我这周看的有点杂,本着先把C语言学完的想法一开始主要看了C中函数的高级应用,最新接触到的便是递归调用,虽然以前有所了解,但这次深入学习时还是很吃力,特别是汉诺塔问题,递归函数中包含两次递归调用,而且参数较复杂,实在搞不懂调用流程时,我就把书上求阶乘的调用流程仔细分析后才有了点眉目,然后在纸上把汉诺塔的递归调用流程一步步画出来,直到这样才对递归的用法和思想有了个较为深刻的了解。后面又接触到了一些关于函数的知识,其中包括:返回指针值的函数、函数指针,特别是对函数指针以前从来没有碰到过,对其用法和作用也认真的看了。这一周最大的收获是学习了一个学生成绩管理程序,这个程序涵盖了本书的知识点,这对回顾前面学过的内容相当有好处,而且这个程序采用了两种方法来实现:第一种是用结构体数组,第二种是用元素是结构体的链表来实现。相对来说,采用链表来实现的方法比较复杂难懂,但程序却更加严谨科学,因为程序很长所以花了好长时间也只看懂了个大概,只能等以后再慢慢理解了。
      本书的下一章是文件操作,开始部分是对一些概念的讲解,看的比较轻松,后面文件操作的函数了,包括对fchtl.h头文件中的五个基本函数(open()、read()、write()、close()、lseek())的用法及各种参数的讲解,后面又讲解了一些高级文件操作的函数的用法,因为以前没用过这些函数,通过对程序示例的分析也只对这些函数的用法有了个大概的了解。本书的最后一章是关于程序常见错误及解决方案,通过对这一章的学习,我想对我这样的新手有了非常大的帮助,能够让我避免一些比较常见的错误。
      另外,这周我还学习了数据结构,为了能比较好的完成老师布置的小任务,这周我把前几章好好的学了一下,对于第一章中的时间和空间复杂度我始终欠缺理解,另外,对链表的那一小节进行认真的学习,与在C语言中学习的知识进行互相的补充,学习了循环链表和双向链表以及相关的操作。下面又学习了堆栈和队列章节,除了这两个知识点外,其中还涉及到了表达式的计算,如何把中缀表达式转换成后缀表达式,以及递归调用的实现,通过递归树来描述调用关系,从递归树中就能明显看出递归调用的重复计算(费时)的缺点,同时其还有费空间的缺点,这些都导致了它与循环迭代相比效率较低且更占内存。
      链表的头文件我之前有看过,但看了一些后感觉一点都不懂,无奈到网上搜到了一篇转自陈老师博客中的文章,看了也是一知半解,后来就学习了上面所说的几章,学完后就开始看老师推荐的那几篇关于头文件的帮助的文章,看了一些后有了一定的帮助,但这周肯定是来不及完成小任务。在剩下的十几天里我打算继续分析头文件,另外把数据结构和操作系统继续学下去,老师我是否有必要把数据结构中的所有章节都学一遍(其中有很多打*的),还是有选择的学?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值