上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1 程序设计语言的“盲点”
程序设计语言是算法设计与实践的基础工具,在问题求解时不限定使用的程序设计语言,如C、C++和Java。鉴于C/C++的普及性,本书约定算法的描述和实现语言为C/C++。显然,掌握好高级程序设计语言C/C++是算法设计和实践的前提和基础。一个算法的正确性和复杂性(或者说效率),除了受制于算法本身,还受程序设计语言实现的影响。一个算法即使思路和方法正确,如果没有正确使用程序设计语言实现,算法程序也会执行结果不正确,或者执行效率低下。
在问题求解时,程序设计者除了犯一些语法和语义错误,如指针错误、数组下标越界、运算符优先级混乱等,常常出现一些与问题领域和算法相关的错误,如忽视变量的取值范围,不正确理解浮点数的精度限制,无原则地使用递归调用。这些问题在高级程序设计语言学习中往往得不到重视,本书称之为程序设计语言的“盲点”,下面通过具体实例详细阐述C/C++中的三个“盲点”,以引起读者在计算机问题求解时的高度重视。