C语言是计算机软件开发领域中最流行的程序设计语言之一,它具有功能强大、效率高、简洁灵活和可移植性等特点,在软件开发领域深受人们的普遍重视。\r\n 本书系统、全面地介绍了C语言程序设计的方法,共分11章。内容包括C语言的各种数据类型(基本的和构造的)、运算符和表达式、各种语句、函数、编译预处理以及文件操作等内容。\r\n 本书内容全面,结构合理,通过实例对C语言的语法要点进行了详尽的阐述,是学习C语言的一本难得的教科书。 本书既可供C语言初学者学习使用,也可供有一定经验的软件开发人员学习参考。
第1章 C语言概述\r\n\r\n1.1 C语言的发展历史和特点\r\n1.1.1 C语言的发展历史\r\n1.1.2 C语言的特点\r\n1.2 C语言程序结构简介\r\n1.3 C语言程序的开发过程\r\n1.3.1 在UNIX操作系统环境下开发C程序的步骤\r\n1.3.2 在Turbo C环境下开发C程序的步骤\r\n1.4 C语言的字符集及词法约定\r\n1.4.1 C语言的字符集\r\n1.4.2 C语言的词法约定\r\n\r\n第2章 基本数据类型\r\n\r\n2.1 数据类型概述\r\n2.2 常量\r\n2.2.1 整型常量\r\n2.2.2 浮点常量\r\n2.2.3 字符常量\r\n2.2.4 字符串常量\r\n2.3 简单变量\r\n2.4 基本数据类型\r\n2.4.1 整型\r\n2.4.2 字符型\r\n2.4.3 浮点类型\r\n2.5 类型转换\r\n2.6 标准输入输出函数\r\n2.6.1 标准输入输出函数简介\r\n2.6.2 标准输出函数printf\r\n2.6.3 标准输入函数scanf\r\n\r\n第3章 运算符和表达式\r\n\r\n3.1 算术运算符\r\n3.1.1 加法运算符(+)\r\n3.1.2 减法运算符(-)\r\n3.1.3 乘法运算符(*)\r\n3.1.4 除法运算符(/)\r\n3.1.5 取模运算符(%)\r\n3.1.6 算术表达式\r\n3.1.7 程序举例\r\n3.2 赋值运算符\r\n3.3 增量运算符\r\n3.4 关系运算符\r\n3.5 条件运算符\r\n3.6 逗号运算符\r\n3.7 逻辑运算符\r\n3.8 位逻辑运算符\r\n3.9 移位运算符\r\n3.10 强制类型转换运算符\r\n3.11 其他运算符\r\n3.12 运算符嵌套与运算顺序\r\n3.12.1 运算符嵌套\r\n3.12.2 运算顺序\r\n3.13 运算符的优先级和结合性\r\n\r\n第4章 语句和控制流\r\n\r\n4.1 简单语句\r\n4.1.1 表达式语句\r\n4.1.2 空语句\r\n4.1.3 复合语句\r\n4.1.4 返回语句\r\n4.2 条件语句\r\n4.2.1 条件语句的一般形式\r\n4.2.2 条件语句的简化形式\r\n4.2.3 条件语句的嵌套形式\r\n4.3 switch语句\r\n4.4 while语句\r\n4.5 do-while语句\r\n4.6 for语句\r\n4.7 break,continue和goto语句\r\n4.7.1 break语句\r\n4.7.2 continue语句\r\n4.7.3 goto语句\r\n4.8 循环的嵌套\r\n\r\n第5章 函数\r\n\r\n5.1 函数定义\r\n5.2 函数的返回值和类型说明\r\n5.2.1 函数的返回值\r\n5.2.2 函数的类型说明\r\n5.3 函数调用\r\n5.3.1 函数调用的一般形式和执行过程\r\n5.3.2 函数调用的参数传递,\r\n5.3.3 函数原型说明和函数原型定义\r\n5.3.4 函数调用的方式\r\n5.3.5 可变参数函数\r\n5.4 函数调用的嵌套和递归\r\n5.4.1 函数的嵌套调用\r\n5.4.2 函数的递归调用\r\n\r\n第6章 变量的作用域与存储类\r\n\r\n6.1 变量的作用域\r\n6.1.1 局部变量\r\n6.1.2 全局变量\r\n6.2 变量的存储类别\r\n6.2.1 局部变量的存储类\r\n6.2.2 全局变量的存储类\r\n6.2.3 存储类小结\r\n6.3 变量的初始化\r\n6.4 内部函数和外部函数\r\n6.4.1 内部函数\r\n6.4.2 外部函数\r\n\r\n第7章 数组\r\n\r\n7.1 一维数组\r\n7.1.1 一维数组的定义\r\n7.1.2 一维数组的引用\r\n7.1.3 一维数组的应用\r\n7.1.4 一维数组的初始化\r\n7.1.5 一维数组的内部表示\r\n7.2 多维数组\r\n7.2.1 二维数组的定义\r\n7.2.3 二维数组的初始化\r\n7.2.4 二维数组的应用\r\n7.2.5 多维数组简介\r\n7.3 字符数组\r\n7.3.1 一维字符数组的定义和引用\r\n7.3.2 一维字符数组的初始化\r\n7.3.3 多维字符数组\r\n7.3.4 字符数组的输入输出\r\n7.3.5 字符串处理函数\r\n7.4 将数组作为函数参数\r\n7.4.1 数组元素作为函数参数\r\n7.4.2 一维数组名作为函数参数\r\n7.4.3 多维数组名作为函数参数\r\n\r\n第8章 指针\r\n\r\n8.1 指针的意义\r\n8.2 指针变量的定义\r\n8.3 指针变量的引用\r\n8.3.1 与指针相关的运算\r\n8.3.2 指针变量的引用\r\n8.4 指针运算\r\n8.4.1 加法运算\r\n8.4.2 减法运算\r\n8.4.3 自增运算\r\n8.4.4 自减运算\r\n8.4.5 赋值运算\r\n8.4.6 关系运算\r\n8.5 指针作为函数参数\r\n8.6 指针与数组\r\n8.6.1 一维数组指针的定义与赋值\r\n8.6.2 利用指针引用一维数组元素\r\n8.6.3 一维数组名作为函数参数\r\n8.6.4 指向多维数组的指针\r\n8.6.5 多维数组的指针作函数的参数\r\n8.7 指向字符串的指针\r\n8.7.1 指向字符串的指针\r\n8.7.2 指向字符串的指针作为函数的参数\r\n8.8 指针数组\r\n8.9 指针的指针\r\n8.10 main函数的参数\r\n8.11 指向函数的指针\r\n8.12 返回指针的函数\r\n8.13 void*和动态存储分配\r\n8.13.1 void*\r\n8.13.2 动态存储分配\r\n\r\n第9章 结构、联合及其他类型\r\n\r\n9.1 结构类型和结构变量的定义\r\n9.1.1 结构类型的定义\r\n9.1.2 结构变量的定义\r\n9.2 结构成员的引用\r\n9.2.1 结构成员的引用方法\r\n9.2.2 指向结构的指针和运算符->\r\n9.3 用结构变量和指向结构的指针作函数参数\r\n9.4 结构变量的初始化\r\n9.5 结构数组\r\n9.6 联合类型\r\n9.6.1 联合变量的定义\r\n9.6.2 联合变量的引用\r\n9.7 枚举类型\r\n9.8 位域\r\n9.9 用typedef定义类型\r\n\r\n第10章 编译预处理\r\n\r\n10.1 宏定义\r\n10.1.1 不带参数的宏定义\r\n10.1.2 带参数的宏定义\r\n10.1.3 运算符#和##\r\n10.2 文件包含\r\n10.3 条件编译\r\n\r\n第11章 文件\r\n\r\n11.1 C文件概述\r\n11.2 文件类型指针\r\n11.3 文件的打开与关闭\r\n11.3.1 文件的打开\r\n11.3.2 文件的关闭\r\n11.4 文件的读写\r\n11.4.1 fputc函数和fgetc函数\r\n11.4.2 fwrite函数和fread函数\r\n11.4.3 fprintf函数和fscanf函数\r\n11.4.4 fputs函数和fgets函数\r\n11.5 文件的定位\r\n11.5.1 rewind函数\r\n11.5.2 fseek函数\r\n11.5.3 ftell函数\r\n11.6 文件操作的出错检测\r\n11.6.1 ferror函数\r\n11.6.2 clearerr函数
C语言从诞生发展到现在已经有30年的时间了。在这30年时间里,C语言得到了很大的发展。从最初的为编写UNIX操作系统而设计并在实验室内部使用的高级程序设计语言,发展到独立于UNIX操作系统并走出实验室、为众多的人所关注的各种机器上的可移植C,再发展到现在普遍采用的标准C,使C语言逐渐走向通用化和标准化。由于C语言的简洁、表达能力强、运算符和数据结构丰富、生成的代码质量高以及可移植性好等特点,使得C语言倍受人们的青睐,成为结构化程序设计语言中的佼佼者。借助于C语言,人们开发出了很多大型的系统软件和应用软件,著名的UNIX操作系统的90%以上的代码就是用C语言来编写的。
C语言在我国也得到了广泛的应用,许多学校将C语言列入学生的必修课程。C语言也是我国计算机等级考试中可选的高级程序设计语言之一。如今,学习和掌握C语言程序设计已经成为很多计算机工作者和计算机爱好者的首选。尽管现在比较流行面向对象的程序设计语言,但这丝毫没有影响人们对C语言的兴趣,因为现在比较流行的面向对象的程序设计语言C十十语言就是在C语言的基础上发展起来的,是对C语言的扩充。因此,学好C语言对于进一步学习C++语言也是很有帮助的。
为了使更多的人更好地学习和掌握C语言,我们编写了这本C语言方面的书籍,来向读者系统、全面地介绍C语言。
第1章C语言概述。从介绍C语言的发展历史和特点入手,并结合了一些实例来向读者展示C语言的概貌,使读者能够从整体上对C语言有一个概括性的认识。并简单地介绍了C语言程序的开发过程以及C语言的字符集及词法约定。
第2章基本数据类型。向读者介绍了C程序设计语言中的常量、简单变量以及基本数据类型等相关的基础知识,并简单介绍了常用的两个标准输入输出函数。
第3章运算符和表达式。介绍了构成C语言语句的基本成分——表达式以及用于构造表达式的运算符。在介绍运算符的同时,还介绍了运算符的优先级和结合性。
第4章语句和控制流。介绍了构成C语言程序的各类语句,包括简单语句、选择语句、循环语句以及转移语句。
第5章函数。介绍了最能体现C语言结构化设计思想的内容——函数。主要从函数的定义、说明、函数调用以及函数调用的嵌套和递归等方面进行介绍。
第6章变量的作用域与存储类。主要介绍了变量的作用域——局部变量和全局变量以及变量的4种存储类——自动的、静态的、寄存器的和外部的存储类,从而,使读者能够更好地运用变量。
第7章数组。介绍了C语言中的一种重要的构造数据类型——数组,在介绍数组的过程中,还特别介绍了数组中的一种特例——字符数组。
第8章指针。详尽地介绍C语言的重点兼难点——指针。
第9章结构、联合及其他类型。介绍了C语言中的另外两种构造类型——结构和联合以及枚举和位域类型,还介绍了用typedef来为己知的类型定义别名。
第10章编译预处理。介绍了C语言的一大特色——编译预处理,主要介绍了编译预处理的宏定义、文件包含和条件编译3个主要功能。
第11章文件。主要介绍了围绕文件操作的标准输入输出库函数。
本书覆盖了C语言的主要的语言点,对C语言的介绍也比较系统和全面。为了使读者能够真正掌握C语言,我们在介绍C语言的各个语言点时力求做到通俗,尤其是对语言点中容易出现错误的地方作了详细的说明,并结合了很多实例,使读者能够做到真正加以运用。本书的例子程序都是在计算机上调试通过并能正常运行的。尽管这些例子不一定能够完全适合您的应用需要,但对于您学习语言、掌握各个语言点来讲已经足够了,希望读者能够举一反三,开发出您自己的应用程序来。
本书是由卢凤双和张律共同编写的,其中第1、2、3章由张律编写,第4、5、6、7、8、9、10和11章由卢凤双编写,并由卢凤双对全书进行了统稿。
由于时间仓促,加上编者水平有限,书中难免会有不当之处,还望读者批评指正。
编者
2002年8月