"内存动态分配-C程序设计经典版谭浩强"

需积分: 9 1 下载量 161 浏览量 更新于2024-01-17 收藏 8.66MB PPT 举报
谭浩强经典版的《C程序设计》一书中提到,在内存动态分配存储空间的情况下,我们需要根据实际需要开辟空间,而不是像在定义变量或数组时所做的那样,在内存为其开辟指定的固定空间。在程序中,例如输入学生成绩时,每个班的学生人数不同,因此需要根据不同的情况开辟不同的空间。一般情况下,为了确保能够容纳所有可能的情况,我们可能会将空间定义的很大,以防止出现内存不足的情况。然而,一旦定义了固定地址的空间,这个空间就不能够被其他变量所占用,在内存中无法被重新利用。 随着计算机的应用领域不断扩大,计算机技术也得到了高速发展。计算机硬件和软件都在不断日新月异,而作为应用计算机的一种工具,程序设计语言也在不断地得到充实和完善。自从1946年第一台电子数字计算机ENIAC问世以来,每年都有新的程序设计语言问世,而老的程序设计语言也在不断地更新换代。 在20世纪60年代,Martin Richards为计算机软件人员在开发系统软件时开发了BCPL语言(Basic Combined Programming Language)作为记述语言使用。1970年,Ken Thompson在继承BCPL语言的许多优点的基础上发明了实用的B语言。到了1972年,贝尔实验室的Dennis Ritchie和Brian kernighan在B语言的基础上开发出了C语言。C语言的出现在当时引起了很大的轰动,因为它具有易于学习、高效、灵活等特点,很快就成为了当时最流行的程序设计语言之一。 C语言的设计充分考虑了程序员的需求,当时的计算机资源非常宝贵,因此C语言的设计也非常注重在尽可能少的资源下完成更多的工作。C语言提供了大量的操作符和控制语句,让程序员能够更加灵活地开发程序。C语言还提供了丰富的库函数,这些库函数能够提供大量的常用功能,从而能够减少程序员的工作量,提高了程序的开发效率。C语言的出现极大地推动了软件开发的进程,它的灵活性和高效性是其他的程序设计语言所不能够比拟的。 随着C语言的不断发展,程序员提出了更高的要求。C语言在一开始是完全面向过程的,但是在软件开发的过程中,程序员渐渐发现这种编程方式有很多局限性,尤其是在大型工程中,程序的可读性、维护性和扩展性都很差。为了解决这些问题,人们开始思考是否有一种更好的方式来组织程序。这就是面向对象的编程思想。 面向对象的编程思想是从现实世界的事务中抽象出来的,它将事物看做是对象,而对象的行为和属性则通过方法和属性来体现。这种思想大大提高了程序的可维护性和可扩展性。C++语言就是一种面向对象的程序设计语言,它在C语言的基础上增加了一些新的特性,支持了面向对象编程的特性。C++语言快速地占领了市场,而且在当时几乎是所有软件工程中的首选语言。 然而,面向对象的编程思想并不仅仅能够满足程序员的需求。在实际的软件开发中,出现了更多的需求:软件需要更大的规模、更高的可靠性,软件也需要更多地进行并发处理。因此,人们需要一种既能够支持面向对象编程,又能够支持更多的需求的程序设计语言。这就是Java语言的出现。 Java语言是一种全新的程序设计语言,它在很大程度上汲取了C++语言的优点,同时又克服了C++语言的缺点。Java语言是一种面向对象的、平台无关的、分布式的、多线程的、动态的程序设计语言。它不仅具有C语言的高效、灵活等特点,还具有C++语言的面向对象编程特性。与C++语言相比,Java语言有着更好的可读性、更高的可维护性和更好的扩展性。 在今天,Java语言已经成为了最流行的程序设计语言之一,它被广泛地应用于企业级应用、互联网应用和移动应用的开发中。 总的来说,程序设计语言的发展经历了很长的历程。从最初的BCPL语言到今天的Java语言,程序设计语言不断地更新换代,不断地得到充实和完善。它们的出现极大地推动了软件开发的进程,提高了程序设计的效率,改善了软件的质量,推动了信息技术的快速发展。期待未来,程序设计语言一定会不断地得到更新和完善,以更好地满足程序员和软件开发者的需求。