一开始就做大项目不现实,我觉得应该分三个阶段学习:
第一阶段是c语言本身,主要是类型、操作符、表达式、语法结构、函数、指针、数组、结构等,想完全弄清楚这些其实很不容易。入门可以参照谭浩强的那本教科书,不过这本书只适合了解一下,不深入,而且里面有些地方和例子都不是很好。还是推荐K&R的《The C ProgrammingLanguage》,最好是英文原版的。这阶段可以同时学习《数据结构》,尝试实现一些链表、树的操作。
第二阶段是结合着实际情况,加深对函数以及相关知识的认识,试着编写一些小软件,实现一些小功能。可以和《APUE》一起学习,里面讲到的例子都可以自己写一下。
第三阶段是深入学习编译原理、操作系统等知识,了解代码是如何从文本文件一步一步变成可执行文件的,知道栈、堆分别是什么,清楚程序的存储空间布局,库函 数和系统调用的区别等。这阶段可以在某个方面深入下去,编写一个比较大的软件,例如一个简单的网络程序、数据库系统或者编译器等。