当前位置: 首页 > news >正文

Rust引用借用 vs 原始指针

let v: i32 = 10;
let v1 = &v;
let a: *const i32 = &v;
println!("a={:p}", a);
let b = a as *mut i32;  //无法从&v直接转换成*mut i32,需要从*const i32过度
println!("b={:p}", b);
unsafe {*b+=1;
}
println!("v={}   v1={}", v, v1);

 输出

a=0xa7c8fb4d8
b=0xa7c8fb4d8
v=11   v1=11
    let mut mv: i32 = 10;let mut mv2 = &mut mv;*mv2 = *mv2 + 1;let p1 = mv2 as *const i32 as *mut i32;unsafe {*p1 += 1;}//let p2 = mv2 as *const i32;let mv3 = unsafe {let i: i32 = *p1;i};println!("mv2={}  mv3={}", mv2, mv3);

 mv2=12  mv3=12

    use std::borrow::Cow;use std::os::raw::c_char;use std::ffi::CStr;let C: [u8; 11] = [116, 104, 97, 110, 107, 115, 102, 105, 115, 104, 0];let c_str: Cow<str>;unsafe{let c_ptr = &C as *const u8 as *const c_char;c_str = CStr::from_ptr(c_ptr).to_string_lossy();}println!("c_str is    {}", c_str);

 c_str is    thanksfish

原始指针和unsafe块配合,可以避过引用借用保护,但也失去了rust的优势。rust严谨也足够灵活...,除非必要原始指针慎用,用多了又变成c了...

相关文章:

Rust引用借用 vs 原始指针

let v: i32 10; let v1 &v; let a: *const i32 &v; println!("a{:p}", a); let b a as *mut i32; //无法从&v直接转换成*mut i32&#xff0c;需要从*const i32过度 println!("b{:p}", b); unsafe {*b1; } println!("v{} v1{}"…...

抖音视频关键词无水印下载软件|手机网页视频批量提取工具

全新视频关键词无水印下载软件&#xff0c;助您快速获取所需视频&#xff01; 随着时代的发展&#xff0c;视频内容已成为人们获取信息和娱乐的重要途径。为了方便用户获取所需视频&#xff0c;推出了一款功能强大的视频关键词无水印下载软件。该软件主要功能包括关键词批量提取…...

关于Devc++调试的问题以及解决STL变量无法查看

目前Devc的调试主要有以下几点&#xff1a; 1.调试不能直接查看stl变量&#xff0c;会卡死不动 2.目前单步进入只能用鼠标键按 3.若想按下一步进入函数体内&#xff0c;要在函数体内打上断点才行 4.调试到return 0 ;上一句就停了&#xff0c;不会结束程序 5.目前F2跳至断点…...

MATLAB:优化与规划问题

一、线性规划 % 线性规划&#xff08;Linear programming, 简称LP&#xff09; fcoff -[75 120 90 105]; % 目标函数系数向量 A [9 4 7 54 5 6 105 10 8 53 8 9 77 6 4 8]; % 约束不等式系数矩阵 b [3600 2900 3000 2800 2200]; % 约束不等式右端向量 Aeq []; % 约束等式系…...

Oracal执行计划解析

概述 | Id | Operation | Name | Rows | Bytes | TempSpc | Cost (%CPU) | Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1…...

对form表单对象中数组中的字段进行校验的方法

当对form表单中&#xff0c;数组readings中的字段进行校验时&#xff0c;prop和rules绑定要写成动态的&#xff0c;如下代码 <div v-for"(item,index) in form.readings"><el-form-item label"上次读数" > <!--prop"scds"-->…...

一、JAVA集成海康SDK

JAVA集成海康SDK 文章目录 JAVA集成海康SDK前言一、项目依赖 jar1. examples.jar2. 项目依赖 jna.jar,可以通过 maven依赖到。二、集成SDK1.HcNetSdkUtil 海康 SDK封装类2.HCNetSDK3.Linux系统集成SDK三、总结前言 提示:首先去海康官网下载 https://open.hikvision.com/dow…...

PAT 乙级 1031 查验身份证 c语言实现

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xff0c;2&#xff0c;1&am…...

LeetCode 345. 反转字符串中的元音字母

给你一个字符串 s &#xff0c;仅反转字符串中的所有元音字母&#xff0c;并返回结果字符串。 元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’&#xff0c;且可能以大小写两种形式出现不止一次。 示例 1&#xff1a; 输入&#xff1a;s “hello” 输出&#xff1a;“holl…...

go中函数与方法的区别与go中关于面向对象理解

声明方法的区别 函数是一段可以独立调用的代码块&#xff0c;它可以有参数和返回值。函数的声明不依赖于任何类型&#xff0c;可以直接通过函数名进行调用。 函数的声明格式如下&#xff1a; func functionName(parameters) returnType {// 函数体 }示例&#xff1a; func A…...

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…...

树结构导入

Testpublic void testExcel1() {// 写法1&#xff1a;JDK8 ,不用额外写一个DemoDataListener// since: 3.0.0-beta1EasyExcelFactory.read(new File("C:\\Users\\Admin\\Desktop\\树导入.xlsx"), null, new ReadListener<Map>() {public static final int BATC…...

Promise封装ajax

Promise封装原生ajax 1.node的内置模块url, http 2.Promise封装原生ajax 01-node的内置模块 # url: 操作网址 let url require(url) url.parse(网址, [布尔值: 决定是否将查询字符串转换为对象格式])&#xff1a; 将网址解析成对象# http: 创建本地服务器 let http requi…...

47 vue 常见的几种模型视图不同步的问题

前言 这里主要是来看一下 关于 vue 中的一些场景下面 可能会出现 模型和视图 不同步更新的情况 然后 这种情况主要是 vue 中的对象 属性没有响应式的 setter, getter 然后 我们这里就来看一下 大多数的情况下的一个场景, 和一些处理方式 当然 处理方式主要是基于 Vue.set, …...

以太网/USB 数据采集卡 24位16通道 labview 256K同步采样

XM7016以太网SUB数据采集卡 XM7016是一款以太网/USB高速数据采集卡&#xff0c;具有16通道真差分输入&#xff0c;24位分辨率&#xff0c;单通道最高采样率256ksps. 16通道同步共计4.096Msps、精密前置增益放大、集成IEPE/ICP硬件支持的特点。本产品采用了多个高精度24位ADC单元…...

python基础 | 核心库:PIL

1、读取图像信息 查看图像信息 读取同一文件夹下的文件 可加 ./可不加 rom PIL import Image img Image.open(image.jpg) # 打开图像文件(注意:是去掉文件头的纯数据) print(img.format) # 图像格式(如BMP PNG JPEG 等) print(img.size) # 图像大小(…...

#Linux系统编程(共享内存)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;什么是共享内存 共享内存是System V版本的最后一个进程间通信方式。共享内存&#xff0c;顾名思义就是允许两个不相关的进程访问同一个逻辑…...

蓝桥杯备考随手记: practise01

问题描述: 小明对数位中含有 2、0、1、9 的数字很感兴趣&#xff0c;在 1 到 40 中这样的数包 括 1、2、9、10 至 32、39 和 40&#xff0c;共 28 个&#xff0c;他们的和是 574。 请问&#xff0c;在 1 到 2019 中&#xff0c;所有这样的数的和是多少&#xff1f; 思路分析…...

【openGL4.x手册09】转换反馈

目录 一、说明二、着色器设置2.2 捕获的数据格式2.2 高级交错2.3 双精度和对齐2.4 In-shader规范 三、缓冲区绑定四、反馈过程五、反馈对象5.1 反馈暂停和恢复5.2 绑定暂停的反馈对象。 六、反馈渲染七、局限性 一、说明 转换反馈是捕获由顶点处理步骤生成的基元的过程&#xf…...

记录一次报错提示npx update-browserslist-db@latest

1&#xff0c;定位文件夹位置 找到HBuilderX的安装目录, cmd切换到HBuilderX/plugins/uniapp-cli下 删除node_modules以及package-lock.json 在当前目录执行npm install 重新打开HBuilderX运行 2&#xff0c; 删除后&#xff0c;再次通过hbuilderX启动微信小程序&#xff0c;会…...

多物流机器人任务调度与路径规划【附程序】

✨ 长期致力于物流机器人、任务调度、路径规划、沙猫群算法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;栅格-拓扑双层地图建模与任务分配&#xf…...

WarcraftHelper:让你的魔兽争霸3在现代电脑上焕然新生的终极指南

WarcraftHelper&#xff1a;让你的魔兽争霸3在现代电脑上焕然新生的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还记得那些年&#xff0c…...

ARM NEON SIMD指令集:VMAX与VMIN深度解析与优化

1. ARM SIMD指令集概述在ARM架构中&#xff0c;SIMD&#xff08;Single Instruction Multiple Data&#xff09;技术通过NEON协处理器实现&#xff0c;它提供了128位的向量寄存器&#xff08;Q0-Q15&#xff09;和对应的64位视图&#xff08;D0-D31&#xff09;。这些寄存器可以…...

ARM架构自托管调试与追踪技术详解

1. ARM架构自托管调试与追踪技术概述在嵌入式系统开发领域&#xff0c;调试技术始终是开发者面临的核心挑战之一。传统JTAG调试方式虽然功能强大&#xff0c;但在生产环境或安全敏感场景中存在明显局限。ARM架构提供的自托管调试(Self-hosted Debug)和追踪(Trace)机制&#xff…...

【DeepSeek+Grafana可视化实战指南】:20年SRE亲授5大避坑法则与实时指标监控黄金配置

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeekGrafana可视化实战导论 DeepSeek 系列大模型&#xff08;如 DeepSeek-V2、DeepSeek-Coder&#xff09;在推理服务中产生丰富的运行时指标——包括 token 吞吐量、P99 延迟、GPU 显存占用、请求…...

1.8.2 掌握Scala类与对象 - 单例对象与伴生对象

本次实战通过三个案例深入解析了 Scala 中 object 的核心机制&#xff0c;展示了其如何替代 Java 的 static 关键字。首先&#xff0c;通过 MathUtils 定义了存放常量与工具方法的独立单例对象&#xff1b;其次&#xff0c;利用 Person 类与其同名对象演示了“伴生对象”特性&a…...

基于MCP协议构建智能Telegram助手:连接AI与外部服务的实践指南

1. 项目概述&#xff1a;一个连接AI与Telegram的智能桥梁如果你正在寻找一种方法&#xff0c;让你在Telegram上使用的AI助手&#xff08;比如ChatGPT、Claude等&#xff09;能够“活”起来&#xff0c;不仅能聊天&#xff0c;还能帮你查天气、看新闻、管理待办事项&#xff0c;…...

别再只用流水灯了!用Arduino和74HC595驱动数码管/点阵屏的完整教程

从流水灯到智能显示&#xff1a;74HC595驱动数码管与点阵屏的实战指南 在创客社区里&#xff0c;74HC595移位寄存器几乎成了"流水灯"的代名词——无数入门教程用它来演示如何用少量IO口控制多颗LED。但当你真正需要构建一个电子钟、温湿度显示器或简易信息板时&#…...

别再纠结了!手把手教你根据项目需求选对Intel Realsense型号(D455/D435i/D415/T265实战对比)

深度视觉硬件选型指南&#xff1a;Intel RealSense全系型号实战解析 在计算机视觉和机器人领域&#xff0c;选择合适的3D感知硬件往往决定了项目成败。面对Intel RealSense系列中D455、D435i、D415和T265等不同型号&#xff0c;许多开发者常陷入"参数对比陷阱"——过…...

终极指南:如何在Windows上使用BiliBili-UWP第三方客户端告别卡顿,享受流畅观影体验

终极指南&#xff1a;如何在Windows上使用BiliBili-UWP第三方客户端告别卡顿&#xff0c;享受流畅观影体验 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端&#xff0c;当然&#xff0c;是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP 还在…...