下载后可任意编辑C 语言讨论性学习的路线现行的多数 C 语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常“误导”读者,于是,“死记硬背”便成了学习 C 语言的唯一选择
本文以拙作《新编 C语言程序设计教程》(清华大学出版社出版,博客 blog
net/stunt 配套视频zeq126
com)为基础,探讨了 C 语言的讨论性学习
C 语言的学习可分为四个阶段
第一阶段 理解 C 语言与计算机的关系理解计算机如何计算
计算机由五大部件组成,C 语言如何使用这五大组成部件
计算机采纳二进制,那么正负号,小数点、字符等如何在计算机中存储
采纳不同的编码方式,计算机中的运算与数学上的运算有何异同
在理解上述问题的基础上,能根据优先级、结合性、数据类型和序列点熟练地对 C 语言表达式求值,也就是能模拟计算机进行计算
第二阶段 掌握编程方法计算机通过连续地对表达式求值(计算)解决实际问题
掌握逻辑运算之后,理解计算机解决问题的方法,即有条件地重复
编程的关键在于找到利用“重复”解决问题的方法
算一次加法,再算一次加法,又算一次加法,“重复加”,如 1+2+3+…+100
大僧人数为1时满足条件吗
大僧人数为 2 时满足条件吗
大僧人数为 3 时满足条件吗
“重复试”,如百僧百馍问题
遇到问题一定要先用自己的超级计算机(大脑)分析问题找出重复,再用循环把重复表达出现,这就是编程
第三阶段 用函数组织代码当程序由多个函数组成时,可以借助对函数封闭性的讨论来理解这一阶段遇到的问题
递归函数是个奇迹,自然而优雅地模拟了递归算法
递归算法是更高级的重复
第四阶段 掌握指针的用法指针提供了使用内存中相关存储单元的另一种途径
由于只需某类型的地址,就可使用相关存储单元,指针变量可以提高函数的执行效率
由于 void 型指针变量的特点,程序中的某些函数可以超越类型的限制而