首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2020-09-26:请问rust中的&和c++中的&有哪些区别?

2020-09-26:请问rust中的&和c++中的&有哪些区别?

原创
作者头像
福大大架构师每日一题
修改2020-09-27 11:35:04
修改2020-09-27 11:35:04
7210
举报

福哥答案2020-09-26:#福大大架构师每日一题#

变量定义:c++是别名。rust是指针。

取地址和按位与,c++和rust是相同的。

c++测试代码如下:

代码语言:txt
复制
#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;
}

运行结果如下:

image.png
image.png

rust测试代码如下:

代码语言:txt
复制
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是指针。");
}

运行结果如下:

image.png
image.png

***

评论

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档