c语言入门 1.该看什么书注意什么事

很久就想写点为初学者准备的c语言文档教程,但总因为一些事情耽误,这次利用给别人上课的过程,好好整理了一下以往的授课内容,希望为所有的程序初学者提供一个深入简出学习平台。

言归正传,先说一下对c语言的认知吧。

基本上c语言是目前所有初学编程者第一门接触的语言,他跟硬件实际联系的比较紧密。所以像操作系统、驱动、裸机程序都会用到c语言,而针对不同的开发环境也会衍生出来一些不同的使用方式,例如linux c,Keil c等。

其实对于c语言来说,无非两方面的实用性:
1、针对硬件编程
2、针对数据结构的算法设计(当然这里也会演化到C++)


在我看来c针对硬件的效率上来说目前还是最高效的,甚至针对算法方面一些程序也会选择从底层调用c语言的模块,从方方面面来看,c语言在对T字型人才(知识面既有宽度也有深度,形成T字型)培养的上还是非常适合的,也特别适合做为基础语言学起。

先说下关于c语言的几个误区:
1、不要炫技巧。例如玩些运算符的罗列,如a+++b,真正没人会这么写程序,除非一些不是很专业的面试题外。
2、知识点的分离。每个知识点都会,组合在一些一脸懵逼,无法做到宏观的把控。
3、多维数组、多级指针作用不太大。一些人喜欢玩二级指针,三维数组,但实际的程序员会告诉你,实际中使用简直屈指可数。
4、忽略内存的管理。初学c语言往往不太喜欢去写malloc和free,但这种内存管理十分重要,他是后续一切高效率程序的关键。


这里先为大家推荐一些有用的书籍,帮助大家的后期学习
ps:如果英文可以的尽量去看英文原版的书籍,国内一些编程书籍很多都是东拼西凑的模式,一些信息的翻译也很晦涩。

1、《C程序设计语言》 (The C Programming Language Brian W. Kernighan, Denis M. Ritchie)
两位作者都可以被称为计算机科学家的人,尤其是Denis M. Ritchie,那可以获得过计算机届的诺贝尔奖的人—图灵奖。这是一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。其中涉及的标准都是非常到位的。

2、《C primer plus》
包含C的所有特性,C语言编程所需的预备知识,C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外强化了对指针的讨论,引入了动态内存分配的概念,这些内容更加适合读者的需求。特别还介绍了C预处理器和C库函数、数据结构方面的内容。我经常会说这是一本工具说。

3、《UNIX网络编程》分为卷一和卷二
这是一部UNIX网络编程的经典之作,是c语言的实际应用的典范,书中全面深入地介绍了如何使用套接字API进行网络编程。不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。作者是W.Richard Stevens,国际知名的Unix和网络专家,同时也是一个专业教育者,在国外计算机教育届有很高的地位。
ps:相应的难度确实高些

4、《UNIX环境高级编程》
也是W.Richard Stevens的杰作,在国外被誉为UNIX编程"圣经"。这里要说一下,会c语言的没有不会Unix类的操作系统的,如果你单会c语言,而没接触过操作系统,基本上算你是很low的。这本书介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。

接下来我们会继续围绕这些主题,进行细致的讲解,如果你对这些书很重视,恭喜你,在编程的这条路上你已经迈出坚实的第一步。

你可能感兴趣的:(c语言入门 1.该看什么书注意什么事)