Rust for Rustaceans 第一章: 基础
Rust 中变量的值, 变量本身, 指针的存储位置有:
- 栈
- 堆
- 静态内存区
内存抽象模型
变量本身一般存储在栈上, 变量数据中包含值的解释. 栈上的值和值的解释存储在一起, 或者是变量中指针成员指向堆上的值, 指针值就是指针指向的内存地址.
在思考变量的值时, 有两种抽象模型:
- 高层: 用于在编程时思考和 move, borrow, lifetime 有关的内容时. 这时程序的抽象模型是由一系列的 flow 构成, 这些 flow 就是变量的生命期演化过程.
- 底层: 用于在编程时思考和 unsafe, raw pointer 有关的内容时. 这时变量就成了值的"存储插槽", 指向这个变量的指针实际就是指向它的值的指针, 并且可以直接解引用获取值.