前言
本书是编者精心编写的介绍C语言程序设计基础知识、基本方法及部分进阶应用的教材,融合了编者多年C/C++工程实践和教学领域经验。编者希望读者能够通过本书学会并掌握C语言相关知识,并将C语言应用于工程实践中,或者为后续的软件工程技术学习奠定较好的基础。
C语言是一门优秀的程序设计语言,从它被设计和发布以来,创造了若干个奇迹: 知名的计算机操作系统是使用C语言设计和编码的;需要实时控制和实时响应的智能设备是使用C语言设计和编码的;现代的很多程序设计语言本身是使用C语言设计和编码的。C语言亦是优雅而严谨的: 其严谨的逻辑有助于培养良好的程序设计思维;它具有较好的可扩展性,而这种可扩展性只需要提供函数库即可完成;它是仅次于汇编语言的高效代码编译和生成能力,但是,其表达能力和可用性又大大高于汇编语言;基于C语言生成的机器代码具有极快的执行效率。学好C语言,可以为后续的类似Java语言、Python语言甚至SQL语言等语言类课程的学习奠定较好的基础。
本书全面介绍了C语言程序设计的基础知识以及部分高级知识,在进行知识介绍的同时,在适当的章节,结合工程应用实践对知识的应用进行介绍。本书配套的微课,对重点、难点以及其他补充知识进行介绍,以期读者在学习和掌握C语言基础的同时,了解与C语言相关的其他知识。
本书按以下顺序进行内容组织和介绍。
第1章介绍了C语言的简单历史、安装C语言开发环境、C语言程序的结构,详细介绍了信息输出语句的使用,以期为后续的知识介绍打好基础。本书使用企业级工程化工具CLion作为C语言程序开发工具。
第2章介绍了C语言基本的数据类型,包括常用的int类型、float类型、double类型;引入了变量的概念并详细介绍其使用方法;介绍C语言的算术运算以及常用的数学函数的使用。
第3章详细介绍了C语言单分支if语句、双分支if语句、多分支if语句以及switch语句,同时对分支语句的嵌套做了介绍。通过本章的学习,读者可以通过分支语句控制程序的流程走向。
第4章详细介绍了while循环、do...while循环和for循环的使用,同时对循环语句的嵌套使用以及集合循环语句使用的break、continue语句的使用也做了详细介绍。
第5章介绍了需要数组的场景以及如何定义和使用数组,为了使读者更容易理解和掌握数组的使用,从内存结构上对数组在内存中的组织进行了详细介绍。对二维数组以及高维数组的使用做了介绍。
第6章介绍了字符数组和字符串的使用。本质上,字符数据只是数组的一种形式,但是考虑到字符数组的特殊性及其与字符串的关系,本书专门用一章内容介绍字符数组和字符串。
第7章介绍函数的基本内容,包括定义函数、调用函数以及函数声明,也介绍了函数的嵌套调用和函数的递归调用的概念和应用。
第8章介绍了函数相关的高级知识,包括变量的作用域、程序工程、程序调试以及基本预编译指令的使用等。
第9章介绍了指针的基本应用,包括定义指针、指针的本质、指针与数组的关系及其应用等。
第10章对指针的高级应用进行介绍,包括二级指针、指针与函数的关系以及函数指针、动态内存分配等,同时对带参数的main()函数做了详细介绍。作为关键内容,本章对指针使用中的常见错误进行了介绍,以便有效规避类似错误的发生。
第11章对结构体的定义、使用进行了详细介绍,内容涉及结构体的各方面,包括结构体作为函数参数、结构体作为函数返回值、结构体与动态内存分配等。本章还介绍了联合体union以及枚举类型enum的定义和使用。
第12章详细介绍了文件操作的内容,包括打开文件、读写文件、关闭文件等内容。为了使文件的操作和理解更为直观,本章结合文件操作函数和文件操作工具,将文件操作的抽象概念转化为直观的观察,使读者能够更好地掌握文件的使用。
第13章介绍的位操作和地址空间对齐是很容易被忽视但又是很重要的内容。如果不能仔细控制地址空间对齐方式,使用C语言编写需要进行异构系统之间信息交换的程序时,很容易因为地址空间对齐导致信息错误。
第14章介绍AI辅助编程。AI的应用已经深入各行各业,因此,作为程序员,也需要掌握AI辅助编程工具的使用。本章对AI辅助编程的基本步骤和方法做了介绍。
将本书作为高校计算机相关专业的教材使用时,建议授课课时安排在72课时。当然,各高校也可根据自身情况适当调整。
虽然编者对C语言知识内容进行认真选取和组织,但是由于编者水平有限,表述不当之处,请批评指正。本书配有PPT讲义、书本源代码、习题答案等电子资源,读者可从清华大学出版社官网下载。C语言程序设计(微课版)前言
编者2025年2月
