19.数据结构
- 2020-02-24 04:42:52
程序员必须设法解决现实对象和基本类型之间的映射问题。
所谓“面向对象的编程”,就是让程序设计围绕着“对象”展开(而不是围绕计算机硬件所能提供的基本类型),这就是面向对象编程的核心法则。
所谓“动态内存分配”,原理如下:在系统中,有一个被称作“内存分配器”(allocator)的程序,管理着一个被称作“堆”(heap)的内存空间。
堆和栈是“头对头”增长的。栈的大小取决于函数调用的深度,而堆的大小取决于分配器接收的“分配申请”数目。
“结构体”体现了面向对象的编程思想,即将编程重心围绕在真实世界的对象上,而不是计算机硬件所支持的几种基本类型。
链表结构之所以这么重要,是因为它的动态特性。链表大小可以在执行过程中,动态增长和见小。
随便说一下,在堆中已分配的内存空间将永久保留,直到程序主动释放。“内存回收器”(deallocator)的任务,就是接收程序的释放请求,并将该空间“归还”给堆,供下次申请使用。
为了支持各种类型的内存分配,malloc函数的返回值采用通用指针类型(即void*),而该返回值在使用时要做“强制类型转换”(type cast)。换句话说,无论什么情况下调用malloc,我们需要告诉编译器,将返回值转换为合适的类型(而不是默认的void*)
CPJLJ对本书的所有笔记 · · · · · ·
-
17.递归
至于判断一个问题是采用递归方法还是循环方法更容易求解,则属于“计算机艺术”的问题了。 递...
-
18.C 语言中的I/O
标准库韩苏的目的是想所以有程序提供一套通用接口。我们可以将函数库看做是一个仓库,它为用...
-
19.数据结构
-
书中相关错误
汇编语言问题7.18代码错误和7.22描述出错; 输入/输出的全部代码中“BRzp”都应改为“BRz”,...
> 查看全部18篇
说明 · · · · · ·
表示其中内容是对原文的摘抄