rust:打印变量地址

Rust STM32F103嵌入式开发教程之GDB调试3 Rust STM32F103嵌入式开发教程之GDB调试 阅读详情
fn main(){
    let a:i32 = 5;
    //&a先转成raw指针,然后再把指针转成usize,这个可以print的
    let addr = &a as *const i32 as usize;
    println!("addr:0x{:X}",addr);

    //为了验证刚才的地址是不是正确的,我们修改这个指针指向的数据
    //pa就是addr对应的raw指针
    let pa = addr as *mut i32;
    //解引用,*pa其实就是&mut a了,给他赋值100
    unsafe{*pa = 100};

    //打印a,可以看到a已经变成100了
    println!("value:{}",a);
}

Play地址:http://is.gd/vxQCHw

输出结果:

addr:0x7FFF9883AB84
value:100
7、Rust 中的内存、变量与所有权深度解析 本文深入解析了 Rust 编程语言中的内存管理、变量使用与所有权机制。内容涵盖了可变变量的合理使用、Copy 类型与非 Copy 类型的区别、引用与克隆的最佳实践、未初始化变量的应用、以及丰富的打印格式技巧。同时通过类比和示例解释了所有权的核心规则及其在确保内存安全和并发编程中的重要性。适合希望深入理解 Rust 核心机制的开发者阅读。 阅读详情

相关推荐

组态王|组态王通过选择日期实现历史数据的查询

②在弹出的【插入通用控件】对话框选择【Calender Control】控件,然后点击【确定】按钮,关闭对话框,然后在画面上适当的位置按住鼠标左键并拖动,绘制出一个矩形框,放开鼠标,就完成了控件的绘制。此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是UTC(格林尼治)1970年1月1日00:00:00。实现内容,通过两个日历控件选择开始日期和结束日期,然后点击【历史数据查询】按钮,在报表中显示对应时间段的数据集。另外你用过哪些组态软件?

做有价值的事,积累有价值的笔记! 4557

Rust: &,clone,Box,Arc 的address

一、& println!(); let temp = 500_i32; println!("&temp : {:p}", &temp); println!("&&temp : {:p}", &&temp); println!("&&&temp : {:p}", &&&temp);

代码过客 1648

QComboBox设置最大显示数量多余的用滑动条,以及QComboBox::setMaxVisibleItems()不起作用的问题

QComoboBox是Qt封装的一个选择框的东西,但是我在使用过程中有一点感觉很不好,如图: 不论你往里面添加多少个它都会给你显示全部,甚至给你铺满全屏,后来看了官方文档发现有个setMaxVisibleItems()的方法,我欣喜若狂啊,终于特么的能解决了,但是,很遗憾,不知为啥,我设置上之后并没有起作用,依然会显示全部,后来搜了百度发现有个人是这样解决的 QComboBox *box = ne...

Aboveground的博客 4918

打印变量地址

打印变量地址 fn main() { let x: i32 = 5; let addr = &x as *const i32 as usize; { println!("addr: 0x{:X} x: {}", addr, x); let pa = addr as *mut i32; unsaf...

weixin_30387799的博客 149

基于PCIe的NVMe协议在FPGA中实现方法

NVMe协议是工作在PCIE的最上层协议层的,故需要先搞清楚PCIE。本文基于Xilinx的UltraScale+,开发工具为Vivado2021.2。NVMe的学习仍以spec为主,其它资料辅助理解,有冲突时以spec为准,必要时可对比最新版本spec。(此文重点介绍学习方法及资料,有时间再加细节)。 主要参考的文章是《老男孩读PCIe》,同时参考《古猫先生》,重点学习TLP报文部分,数据链路层和物理层的内容可以先不看。再买一本书《PCI Express 体系结构导读-王齐》用来查阅做笔记。

leixj的博客 1万+

【SOC估算】基于EKF与神经网络融合的锂电池SOC高精度估计及Matlab实现

本文探讨了基于EKF与神经网络融合的锂电池SOC高精度估计方法。通过结合扩展卡尔曼滤波(EKF)的模型驱动优势和神经网络的数据驱动学习能力,实现了对电池荷电状态(SOC)的精准预测。Matlab仿真验证了该混合算法在各种工况下均能显著降低估计误差,提升电池管理系统性能。

play7的博客 694

rust 变量地址

let free_coloring_book = vec![ "mercury", "venus", "earth", "mars", "jupiter", "saturn", "u...

chuipianyao6940的博客 1143

相机标定原理与张氏标定法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

heeweii的博客 2280

Rust变量和类型

我们将探讨Rust程序的基本构建块,如变量和类型。我们将讨论基本类型的变量,它们是否需要声明类型,以及变量的作用域。不可变性,作为Rust安全策略的基石之一,也将被讨论和展示。我们的代码示例将围绕构建一个基于文本的游戏。

cppclub的博客 1238

保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)

本文详细介绍了使用OpenCV进行鱼眼双目相机标定与测距的全流程,包括环境搭建、数据采集、单目标定、双目标定、立体校正和视差计算等核心步骤。通过完整的C++代码示例和参数调优指南,帮助开发者快速实现高精度的双目测距系统,适用于机器人导航、VR全景拍摄等领域。

weixin_42573113的博客 387

推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term Weight、Query 改写、同义词扩写]和语义召回技术

在 pooling 方法上,我们也尝试过不同层 pooling,或者在多层上增加 attention 聚合 BERT 多层结果,效果和最后一层所有 token 做 average pooling 相当。损失函数方面,在排序阶段使用pairwise比 pointwise 损失函数的效果会更好。

丨汀、的博客 1109

rust怎么检查Arc<DiFactroy>中DiFactroy的对象地址

("是同一实例: {}", std::ptr::addr_eq(Arc::as_ptr(&a), Arc::as_ptr(&b)));| 比较两个 Arc 是否指向同一个对象 | `std::ptr::addr_eq(Arc::as_ptr(&a), Arc::as_ptr(&b))` |("内部对象地址(堆): {:p}", Arc::as_ptr(&bean));("a 指向地址: {:p}", Arc::as_ptr(&a));("b 指向地址: {:p}", Arc::as_ptr(&b));

leijmdas的专栏 195

基于摩尔线程 S80 显卡在 Ubuntu 系统下双卡交火部署 DeepSeek

curl -X POST -H "Content-Type: application/json" -d '{"prompt": "你的问题"}' http://localhost:11434/api/generate。curl -X POST -H "Content-Type: application/json" -d '{"prompt": "你的问题"}' http://localhost:11434/api/generate。- 为避免模型占用系统盘空间,可将模型存储路径修改到其他磁盘。

靡不有初,鲜克有终 1193

Rust编程知识拾遗:Rust 编程,读取命令行参数

视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 g...

令狐一冲 1815

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【RUST编程之道】RUST快速入门

函数通过fn关键字定义。} else {上述代码中,通过关键字fn定义一个fizz_buzz的函数,函数中的括号为入参类型,约定入参类型为i32,符号->后面的String为该函数的返回类型,该函数定义的返回类型为String。

qq_43511905的博客 4091

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Rust自学】19.1. 摆脱安全性限制的unsafe Rust

到目前为止我们讨论的所有代码都在编译时强制执行Rust的内存安全保证。然而,Rust内部隐藏着第二种语言,它不强制执行这些内存安全保证,被称为unsafe Rust。它和普通Rust一样,但给了我们额外的“超能力”。

A Rookie in San Domenico School 3156

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

rust函数返回的变量也是一份副本copy?

fn f(x:Vec)->Vec{ let p = &x as *const Vec; println!("f::x address := {:?}",p); x } fn main(){ let x = vec![100]; let p = &x as *const Vec;//注意泛型参数啊!,不写的话要报错额 println!("main::x address := {:?}"

修也 1408

【Rust中级教程】1.1. 指针概览(上):什么是指针、指针和引用的区别

数据在物理内存中(Random Access Memory,简称RAM)是分散着存储的。而为了找到具体的数据,我们需要一个检索系统,叫做地址空间

A Rookie in San Domenico School 1455

【Rust中级教程】1.3. 内存 Pt.1:各类概念的定义及变量的高级模型和低级模型

值会存储到一个地方(或者说这个地方可以容纳值),具体就是堆内存、栈内存或者其他地方。最常见的存储值的地方就是变量,它是*栈内存*上一个被命名的槽(用于存储值)。

A Rookie in San Domenico School 1362

Rust 变量常见问题及解决办法

Rust 允许重复使用同名变量,新变量会遮蔽之前的绑定。匹配绑定的变量作用域限于分支代码块,避免与外部变量冲突。的区别在于类型可变性。遮蔽后的变量可以改变类型,而。解析字符串、复杂表达式或多态类型时需明确类型。Rust 中变量默认不可变,需显式声明。确保变量在使用前被赋值,或使用。

skjapxc973lor的博客 329

【Rust】unsafe rust入门

C++中其实没有unsafe这个东西,像类似裸指针这种,在C++中甚至是一种比较常用的用法。毕竟智能指针,比如shared_ptrunique_ptr,用法更为复杂。所以我个人认为,Rust的unsafe的意义是,将这些不安全的操作变得复杂,变得难写,进而引导程序员选择更加简单,更加好写的安全用法。这和C++如今的处境刚好相反,C++中按照安全原则写出来的代码都比较复杂,这也是历史原因,毕竟不能动现成的代码。另外,unsafe也是一种承诺,不再由编译器保证代码的安全性,而是由程序员自己来保证。

矢车菊二十七号 1696

Rust调试神器dbg!宏:轻松查看变量值的终极指南

如果你正在学习Rust编程语言,那么掌握调试技巧是必不可少的。在众多的调试工具中,`dbg!`宏无疑是Easy Rust推荐的最佳变量值查看方案。这个简单而强大的宏让调试变得前所未有的轻松!😊 ## 什么是dbg!宏? `dbg!`是Rust标准库中一个极其有用的调试宏,它能快速打印变量信息。相比传统的`println!`,`dbg!`不仅输入更快,而且提供的信息更加丰富。 [![Rust

gitblog_00987的博客 366

【Rust自学】2.1 猜数游戏Pt.1 一次猜测

在本篇中,你将学到 变量的声明 相关的函数 外部的crate(库) 枚举类型 println!()的进阶使用 ...

A Rookie in San Domenico School 1000

Rust-esp32-std-demo WiFi连接教程:如何让ESP32轻松接入无线网络

Rust-esp32-std-demo是一个基于Rust语言的ESP32标准库演示项目,它能帮助开发者轻松实现ESP32设备的WiFi连接、以太网通信、HTTP服务器搭建以及LED屏幕显示等功能。本教程将详细介绍如何使用该项目让ESP32设备快速接入无线网络,适合Rust和ESP32开发新手参考。 ## 准备工作:搭建开发环境 在开始WiFi连接配置前,需要确保你的开发环境已正确搭建。首先,克

gitblog_00298的博客 1113

rust变量,循环,线程等

use std::io::stdin; //输入输出 use std::thread; use std::time::Duration; fn main() { //变量 println!("Hello, world!"); let a = "test rust"; //a 无法改变 相当于常量了 println!("haha {}",a); //打印输出a //循环 let mut i = 0; //变量,i 可变 let mut s = "".to_string(); //可.

全粘工程师 874
上一篇: rust raw pointer使用方法(4)
下一篇: 理解rust里的移动语义(1)
varding
博客等级 码龄17年 115粉丝 116原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值