图书前言

前言

C语言是一种经典的计算机语言,至今仍被广泛使用。C语言是一种结构化、模块化的程序设计语言,具有表达能力强、代码质量高和可移植性好等特点。因此,C语言不仅是高等院校计算机类专业的必修课程,也成为大多数非计算机类专业的重要课程。

C语言概念复杂、规则繁多、使用灵活、容易出错,对于初学者来说难度较大。本书以案例为线索,将对问题的分析和设计过程贯穿于案例之中,避免学习单纯语法的枯燥。书中精选大量案例,并对案例进行详细分析,对涉及的语法、问题分析和设计过程进行详细说明和解释,使读者在设计程序的过程中逐渐提升解决问题的能力。

伴随C语言的发展,C语言标准也在不断更新。在实际应用中,标准的不断变化也会给读者带来困惑。因此,本书关注C语言标准的不断变化,向读者解释编程过程中的一些细节问题。例如,main()函数是C语言中非常特殊的函数,它没有原型,即没有固定的格式,常用的有int main(),或者使用int main(void)明确表示无参数,以及带有命令行参数的int main(int argc, char *argv\[\])。对于嵌入式系统,也常用void main()的形式,即无返回类型。void main()这种形式虽然可以用在有操作系统的环境中,但在C99标准后其返回值不定,因此在采用int main()形式时,即便我们不关心程序的结果,也建议在结束前写上“return 0;” 来表示程序正常结束。如果不写,则其宿主环境得到的值为不确定(C99以前的版本)或0(C99及以后的版本)。

作者经过多年C语言教学实践的积累和探索,在编写本书的过程中,除了对以往读者聚焦的问题进行解读之外,还加入了一些有助于提升读者编程素养的引导,以期引起读者思考,拓宽对程序设计的认识和理解。例如,为了启发读者对于本地化和国际化编码的思考,对于不同国家和地区,计算机除了语言文字编码不同外,货币符号、日期和时间格式、数字标点表示、排序习惯等也不尽相同,甚至在姓名、地址的书写格式等其他方面也存在差异。在处理信息的过程中,尽管原始信息一样,例如都使用格林尼治时间,但针对中国用户、日本用户和英国用户的显示需要的不同,应根据当前的地区设定来改变软件的输出格式,这就是软件开发中的国际化过程。另外,本书还介绍了我国文字编码的相关内容,为读者设计国产化应用系统时的本地化编码提供启发和帮助。

本书第1、6~12章由齐亚莉和王克蒙老师编写,第2~5章由张珍珍和王克蒙老师编写。

感谢北京印刷学院优质本科教材建设项目对本书的资助。

由于编写时间仓促,书中难免有疏漏和不妥之处,欢迎读者批评指正,希望读者提出宝贵的意见和建议,以便我们及时加以修正。

编者

2025年2月