图书前言

前言

语法是程序设计语言的基础,掌握必要的语法规则是编程的基本要求。但是,学习程序设计最重要的并不是语法,而是计算思维。编者一直认为对于大多数学生来说只要掌握了计算思维和程序设计的基本方法,学好了任何一门编程语言,那么在学习其他编程语言的时候,只需要大概了解一下语法,就完全能够快速上手。学习编程,切忌贪多,切忌只看书不动手,程序设计是一个实践性非常强的课程,一定要多动手实际编写和调试程序代码,遇到的问题多了,解决的问题多了,自己的编码能力自然就提高了。因此本书章节的安排不是以C语言基本语法知识为主线,而是面向实际工程需求,在引导学生解决实际问题的基础上自然掌握语言的细节。

根据TIOBE编程社区指数,C语言自1989年以来一直处于编程语言排行榜的前列,是一种备受推崇的编程语言,具有广泛的应用场景。同时,C语言的语法简单、功能强大、可移植性高等优点也使其成为许多程序员的首选语言。但是,C语言带来的安全性问题不可忽视,深入了解这些安全问题对于编写安全的C代码至关重要。因此本书在系统介绍C语言程序设计方法的基础上,以培养C程序设计中的安全思维为出发点,将 C 语言程序设计中需要注意的安全问题贯穿全书每个章节,每章均设置了单独的小节介绍该章内容需要注意的安全缺陷,在全书的内容描述中也穿插了程序设计中需要关注的安全问题。

另外本书贴近实际应用,以解决实际工程问题出发,设计了相关案例,并以一个大整数运算库为例,详细介绍了实际工程应用中所需的多文件项目工程的设计、编译、链接和测试方法。对于学生来说,如果能够自己从头到尾完整地实现这个大整数运算库的工程,那么就能够具备一定的使用C语言来解决实际工作中具体工程问题的能力,而不是学完课程以后只会用C语言完成一些简单的功能。

本书可作为高等学校各专业程序设计课程的教材,尤其适合作为计算机类网络空间安全相关专业的教材,面向对象是没有学过计算机程序设计的学生。因此本书的主要目的是帮助学生学习和掌握计算思维以及程序设计方法,使得学生在初步学会使用C语言解决实际问题的同时能够关注语言本身可能带来的安全问题,并在编写代码的时候能够避免这些安全隐患。本书代码均按照C 99标准介绍,书中所有程序使用的编译器为GNU Compiler Collection(GCC),版本为gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project),程序调试器为GNU symbolic debugger(GDB),版本为GNU gdb (GDB) 8.1。

本书由罗敏等编著,第1、2、9章由罗敏执笔,第 3、8章由王张宜执笔,第4、6章由滕冲执笔,第5、7章由傅建明执笔。邹菁琳、白野、刘洋、胡芯忆、陈纪成、黄俊、曾庆贤、包嘉斌、朱鑫杰、刘云连、郑航城、史述云、叶焘、王若男、朱郭诚、赵天可、雷斗威、杜帮瑶等参与了本书的书稿校对工作。武汉大学的王先兵老师在百忙之中审阅了初稿并给出了宝贵的意见。在此对他们的辛勤工作表示衷心的感谢。

由于时间仓促,加之编者水平有限,书中尚有许多不足之处和各种错误,欢迎广大读者多对本书提出宝贵意见和建议。

作者

2024年7月于武汉