C语言研究性学习的路线
现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常“误导”读者,于是,“死记硬背”便成了学习C语言的唯一选择。本文以拙作《新编C语言程序设计教程》(清华大学出版社出版,配套视频zeq126.56.com)为基础,探讨了C语言的研究性学习。
C语言的知识点有:
1. C语言与计算机的关系
2. 表达式的求值
3. 逻辑运算及选择结构
4. 算法及循环结构
5. 数组的作用及准确理解
6. 函数的作用及准确理解
7. 指针的作用及准确理解
8. 自定义数据类型及文件
这几部分相辅相成,构成了一个有机的整体。分析如下:
八、其他
预处理
源文件通常由命令如include和C语言语句两部分组成。程序编译时源文件会由称为“预处理器”的程序先进行处理,被处理过的源文件中只有C语言语句了。预处理器只能进行简单的如查找替换似的“文本操作”。预处理命令的主要作用是方便程序的编写。
(-)程序编译
理解程序编译的过程。注意链接阶段的主要任务是处理具有文件作用域的标识符在多个源文件中的使用问题。
通过“如何在不暴露函数源代码的前提下提供函数的功能”的思考加深对程序编译的理解。
(二)宏定义
如何定义宏展开时不出现错误的宏。(#define ABS(x) ((x)>0?(x):(-x)有问题吗?)
参数化宏与函数有何本质上的区别。(一个属于预处理,一个属于C语言(有类型检查,有执行函数体的过程)。正因为是简单的替换,宏可以超越类型,如可以定义一个求某数绝对值的宏,而不必考虑此数为整数还是小数。
(三)文件包含
掌握文件包含常见的两种形式的不同之处。
理解头文件的内容为何不要包含函数的定义。
(四)条件编译
条件编译命令在什么时候执行?
理解条件编译命令的作用。(用于解决同一个头文件被多次包含的问题。用于编写可移植的代码。)
用户自定义数据类型
数据类型是具有相同特征的一类数据的抽象,用于在程序中定义变量。变量标识了内存中的一块存储单元,通常存放了属于某数据类型的一个具体值。
用户只能通过对已有数据类型的限定、组合来定义新的数据类型。
用户自定义数据类型数也用于定义变