开发者社区> 华章计算机> 正文

《计算机系统:核心概念及软硬件实现(原书第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的字段,它指向链表中的下一个结点。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Swift-进阶 07:Mirror源码解析
Swift-进阶 07:Mirror源码解析
3 0
二叉(搜索)树转换/完全二叉树验证解析
二叉(搜索)树转换/完全二叉树验证解析
3 0
Python基础知识11: 变量的进阶
Python基础知识11: 变量的进阶
4 0
RPC框架(6 - 实现自动注销和负载均衡策略)
RPC框架(6 - 实现自动注销和负载均衡策略)
4 0
数据结构与算法必知--- Bitmap位图与布隆过滤器
数据结构与算法必知--- Bitmap位图与布隆过滤器
3 0
RPC框架(1 - 实现服务端注册一个服务)
RPC框架(1 - 实现服务端注册一个服务)
4 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载