这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() { let mut a = 34; println!("a's addr:{:p}", &a); let p = &mut a; println!("p's addr:{:p}", &p); println!("out test_pointer p's addr:{:p}", &test_pointer(p)); let b = 1; let bp = &b; println!("in main bp's addr:{:p}", p); pointer_addr(bp); pointer_addr1(bp); } fn test_pointer(p: &mut i32) -> &mut i32 { *p = 32; println!("in test_pointer p's addr:{:p}", &p); p } fn pointer_addr(p: &i32) -> &i32 { println!("in pointer_addr p's addr:{:p}", p); p } fn pointer_addr1(p: &i32) -> &i32 { println!("in pointer_addr1 p's addr:{:p}", p); p }
结果:
cargo run Compiling pointer v0.1.0 (file:///home/xiaotie/code/my/learn_rust/pointer) Running `target/debug/pointer` a's addr:0x7ffd05efe8fc p's addr:0x7ffd05efe868 in test_pointer p's addr:0x7ffd05efe728 out test_pointer p's addr:0x7ffd05efe778 in pointer_addr p's addr:0x7ffc03bbd504 in pointer_addr1 p's addr:0x7ffc03bbd504
事实证明指针在函数返回的过程中是不是销毁在创建也不是直接传递,而是在作用域外再创建一个指针,但是这个指针不会在函数结束后销毁,而是无效,但是会被复用。
相关推荐
OptArgs:Rust 函数的可选参数为任何函数启用可选参数:#[optargs::optfn]pubfnplot ( x:Vec , y:Option <Vec>>, title:Option <&str >, xlabel:Option <&str >, ylabel:Option <&str >, ...
Rust 入门之函数和注释实例 函数本身是各个语言都支持的类型,我们此前已经多次使用 fn main() 这个函数来承载业务逻辑,fn 可以用来声明一个函数,而 main 函数跟其他语言一样,可以理解为程序启动的【起点】,一切...
Rust语言教程:Rust 函数讲解介绍
锈共享ptr Rust的共享指针实现。 大多数源代码是从Rust Rc指针复制而来的,但要复制get_mut函数。 该项目仅用于学习Rust的培训。
函数式编程允许开发人员将程序划分为更小的、可重用的组件,从整体上简化软件的创建、测试和维护。结合 Rust 的强大功能,您可以开发满足现代软件需求的强大且可扩展的应用程序。本书将帮助您发现可用于以功能方式...
在rust中,const函数是编译器在编译时可以解释的函数类型。 Constany:将任何rust函数转换为const函数Constany允许您从任何表达式中构建const(或至少是伪const)函数在rust中,const函数是编译器在编译时可以解释的...
rustc 中使用的快速哈希算法。liballoc 中的 hashmap 默认使用 SipHash,它...它始终优于 rustc 本身中基于 FNV 的哈希——冲突率与 FNV 相似或略差,但哈希函数本身的速度要高得多,因为它一次最多可以处理 8 个字节。
gl-rs:Rust的OpenGL函数指针加载器
详解 Rust 的函数与闭包
rust-cpp, 将 C++ 直接嵌入到 Rust 代码中 ! rust - 直接在 Rust 中嵌入 C++ 代码 rust-cpp 是一个构建工具&宏,它允许你在 Rust 代码中编写 C++ 代码。但是,由于自定义派生,这个接口仍然非常不稳定,它现在有一...
此编程为我的assignment
rust-argparse, Rust的命令行 参数解析器库 Argparserust-argparse的Rust 命令行解析模块。 它受到 python 模块 argparse的启发。功能:支持标准( GNU ) 选项约定正确输入的值自动生成的帮助和用法消息导入编辑 ...
函数定义与调用:掌握Rust中函数的定义、参数传递和返回值处理。 模块与包:了解如何组织代码到模块和包中,实现代码的复用和封装。 四、数据结构 元组与枚举:学习使用元组来组合多个值,以及使用枚举类型来...
这是一份全面的Rust语言学习指南,详细介绍了Rust的开发环境、语法、属性、内存管理和Unicode等方面的知识。主要内容包括: 1. Rust开发环境指南 - Rust代码执行流程 - Rust安装方法 - Rust编译和运行命令 - ...
Rust编程语言这是Rust的主要源代码存储库。 它包含编译器,标准库和文档。 快速入门阅读本书中的“安装”。 从源代码安装注意:如果您希望对编译器有所帮助,则应阅读rustc-dev-guide的这一章而不是本节。 Rust构建...
Rust 和 C 都是硬件直接抽象 同样的 LLVM 后端 都允许??优化,但有?些?例外 Rust 相? C 语?的?些开销 可执??件?? Rust 略胜 C 的?些地? Rust ? C 明显优越的地? 可靠性 所有权: Rust 语?内存安全机制 Unsafe Rust ...
rust程序设计官方文档
安装完成后,打开你的命令行工具,输入以下命令来创建一个新的 Rust 项目: cargo new my_first_rust_program 这将在当前目录下创建一个名为 my_first_rust_program 的新目录,里面包含了一个简单的 Rust 项目结构...
Rust 程序设计语言
Hands-On-Functional-Programming-in-Rust:Packt发布的Rust中的动手函数编程