2020-09-26:请问rust中的&和c++中的&有哪些区别?
福哥答案2020-09-26:#福大大架构师每日一题#
变量定义:c++是别名。rust是指针。
取地址和按位与,c++和rust是相同的。
c++测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> struct Point { int x; int y; }; int main() { Point p1 = { 25,25 }; printf ( "p1.x address:%d\r\n" , &p1.x); printf ( "p1 address:%d\r\n" , &p1); Point& p2 = p1; printf ( "p2.x address:%d\r\n" , &p2.x); printf ( "p2 address:%d\r\n" , &p2); printf ( "p1和p2地址相同,说明p2起到了别名的作用。p2.x和p2地址相同,说明p2保存的是内容,而不是地址。\r\n" ); std:: system ( "pause" ); return 0; } |
运行结果如下:
rust测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | struct Point { x: i64, y: i64, } fn main() { let p1 = Point { x: 25, y: 25 }; println!( "p1.x address: {:p}" , &p1.x); println!( "p1 address: {:p}" , &p1); let p2: &Point = &p1; println!( "p2.x address: {:p}" , &p2.x); println!( "p2 address: {:p}" , &p2); println!( "p1和p2地址不同,说明p2不是p1的别名。p2.x和p2地址不同,说明p2是指针。" ); } |
运行结果如下:
***
[评论](https://user.qzone.qq.com/3182319461/blog/1601075072)
公众号:福大大架构师每日一题
分类:
福大大架构师每日一题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具