【Rust中级教程】1.3. 内存 Pt.1:各类概念的定义及变量的高级模型和低级模型
1.3 内存 Pt.1各类概念的定义及变量的高级模型和低级模型1.3.1. 值在讲内存之前我们得先讲三个概念第一个是值。值指的是类型 类型值域中的一个元素。例如true它的类型是bool类型它的值域里就两个值——一个true一个false。值指的是类型 类型值域中的一个元素true的值就是bool类型 值域中的元素true。通过值的类型表示可以转化为字节序列- 举个例子u8类型的6在内存中的表示就是0x06- 再看一个例子str的Hello World字符串它就是字符串值域里的一个值它的表示是utf-8编码注意值的含义是独立于存储它字节的位置的也就是值和存储它的位置没有直接关系它们是独立的两个概念1.3.2. 变量值会存储到一个地方或者说这个地方可以容纳值具体就是堆内存、栈内存或者其他地方。最常见的存储值的地方就是变量它是栈内存上一个被命名的槽用于存储值。1.3.3. 指针指针是一个值值里面存放的是一块内存的地址指针指向某个地方地址所对应的内存。指针可以被解引用(dereference)来访问它指向的内存里存放的值。可以把同一个指针放在不同的变量里也就是说多个变量可以间接地引用内存上的同一块区域也就是相同的底层的值。1.3.4. 深入变量变量可以被分为两种模型- 高级模型生命周期、借用...- 低级模型不安全代码、原始指针...变量的高级模型变量实际上就是给值一个名称。当值被赋给变量时这个值从那时起就由该变量命名了。举个例子:let variable 1234;如图1234这个数据此时就由variable这个变量命名了。当变量被访问时可以从变量的上次访问到这次访问画一条线从而在两次访问中建立依赖关系。如果变量被移动了就不能从它那里画线。这么说你可能不明白看个图你就懂了声明a第2行算一次访问把a赋给b第4行算另一次但是和打印出a第8行之间不能画线因为在此之前变量已经移动了第4行。在变量的高级模型中变量只会在它持有合法值的时候才存在。如果变量的值没有初始化或者已经被移动了那就无法使用画线的方法。使用这种模型整个程序会由许多依赖线组成这些线叫flow。每个flow都在追踪一个值的特定实例的生命周期。当有分支存在时flow可以分叉或合并并且每个分叉都在追踪该值的不同的生命周期。在程序中的任何给定点编译器可以检查所有的flow是否可以互相兼容并行存在。例如- 一个值不可能有两个具有可变访问的并行flow- 一个flow借用了一个值但却没有flow拥有该值变量的低级模型变量会给那些可能不存储合法值的内存地址进行命名。可以把变量想象为值的槽当你赋值时槽就装满了而它里面原来的值如果有的话就被丢弃或替换了。当访问它时编译器会检查槽是不是空的。如果是那么就说嘛变量未初始化或它的值被移动了。指向变量的指针其实是指向这个变量的幕后内存通过解引用可以获得它的值。注意在本例中我们忽略CPU寄存器并将其视为优化。实际上如果变量不需要内存地址编译器可以使用寄存器而不是内存区域来存放变量。

相关新闻

【Rust中级教程】2.3. API设计原则之不意外性(unsurprising) Pt.3:实现serde下的Serialize和Deserialize trait、不建议实现Copy trait

【Rust中级教程】2.3. API设计原则之不意外性(unsurprising) Pt.3:实现serde下的Serialize和Deserialize trait、不建议实现Copy trait

2.3. API设计原则之不意外性(unsurprising) Pt.3:实现serde下的Serialize和Deserialize trait、不建议实现Copy trait 2.3.1. 建议实现serde下的Serialize和Deserialize trait serde是Rust中用于序列化(serialization)和反序列化(…

2026/9/27 1:15:21 阅读更多 →
猫抓浏览器扩展终极指南:如何高效获取网页视频资源

猫抓浏览器扩展终极指南:如何高效获取网页视频资源

猫抓浏览器扩展终极指南:如何高效获取网页视频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch&#xf…

2026/9/24 18:26:05 阅读更多 →
微信单向好友检测终极指南:3步找出谁偷偷删除了你

微信单向好友检测终极指南:3步找出谁偷偷删除了你

微信单向好友检测终极指南:3步找出谁偷偷删除了你 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 你…

2026/9/23 13:01:56 阅读更多 →

最新新闻

Mac录屏声音解决方案:用Blackhole替代Soundflower同时录制系统声音和画外音

Mac录屏声音解决方案:用Blackhole替代Soundflower同时录制系统声音和画外音

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:15:17 阅读更多 →
Web of Science机构账号登录全攻略:从权限原理到实操排错

Web of Science机构账号登录全攻略:从权限原理到实操排错

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:15:17 阅读更多 →
433MHz遥控器DIY:从编码解码到智能家居接入

433MHz遥控器DIY:从编码解码到智能家居接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:15:17 阅读更多 →
Flash网站制作避坑指南:3个注意事项教你省50%预算

Flash网站制作避坑指南:3个注意事项教你省50%预算

Flash网站制作避坑指南:3个注意事项教你省50%预算 找建站公司报价时,是不是总觉得对方在忽悠你?明明需求很简单,报价单却写得像天书,几千块起步,动不动就上万。别慌,这行水确实深,但只要抓住 注意事项…

2026/9/27 1:15:17 阅读更多 →
Vue+SpringBoot校园后勤管理系统:Java毕业设计完整落地指南

Vue+SpringBoot校园后勤管理系统:Java毕业设计完整落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:15:17 阅读更多 →
5G分流比优化:从射频调参到核心网策略协同

5G分流比优化:从射频调参到核心网策略协同

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 1:14:17 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →