《计算机系统:核心概念及软硬件实现(原书第4版)》——2.6 总结

简介:

本节书摘来自华章计算机《计算机系统:核心概念及软硬件实现(原书第4版)》一书中的第2章,第2.6节,作者:[美] J. 斯坦利·沃法德(J. Stanley Warford)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.6 总结

在C++中,值存储在主存储器的3个不同区域中:全局变量存放在内存中的固定位置,局部变量存放在运行时栈和堆。改变控制流一般顺序的方法有两种:选择和循环。C++的if和switch语句实现选择,while、do和for语句实现循环。所有5种语句都用关系运算符测试条件的真伪。
运行时栈的LIFO特性用于实现函数和过程调用。函数的分配过程是:压入返回值的存储空间,压入实参、压入返回地址、压入局部变量的存储空间。过程的分配过程除了不压入返回值的存储空间之外都是一样的。栈帧是由一次函数或过程调用中压入运行时栈的所有项组成的。
递归过程是一种调用它自己的过程。为了避免无休止地调用它自己,递归程序必须有一个if语句,作为停止递归调用的安全出口。微观和宏观是两种不同的思考递归的角度。微观

image

image

角度考虑程序执行期间运行时栈的细节,而宏观角度基于更高的抽象层次,与数学归纳法证明相关。微观用于分析,宏观用于设计。
用new运算符在堆上分配存储空间称为动态内存分配。new运算符在堆上分配一个内存单元,并返回一个指向该单元的指针。结构是一组值,它不要求所有的值都是同一类型。每个值存储在一个字段中,每个字段有一个名字。链接数据结构由结点组成,这些结点都是结构,结构中有指针指向其他的结点。链表中的结点有一个值字段,还有一个通常名为next的字段,它指向链表中的下一个结点。

相关文章
|
存储 C++ Python
《计算机系统:核心概念及软硬件实现(原书第4版)》——导读
这种方法为讨论计算机科学中的核心问题提供了一种很自然的环境。例如,本书介绍了HOL6层的结构化编程,可以和Asmb5层的非结构化编程的可能性进行对比。书中讨论了goto争议、结构化编程/效率之间的折中,给出了两个层次上语言的实际例子。
1855 0

热门文章

最新文章