rust 对String的引用是指向String变量的指针还是指向其ptr成员的指针?

byqmnocz  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(108)

我在读《圣经》时看到了这张图片(https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html#references-and-borrowing):

我有两个问题:
1.引用s是否指向s1本身(结构s1的地址)或s1的成员ptr

  1. s(引用)本身是一个包含公共成员ptr或指针(string* s)的Struct吗?
    为便于理解:
fn main() {
    // String
    let s1 = String::from("hello");

    // reference
    let s = &s1;

    println!("s:{:p}, s1:{:p}", s, &s1);
    // OUTPUT: s:0x63373afae0, s1:0x63373afae0

}
vltsax25

vltsax251#

引用s是否指向s1本身(结构s1的地址)或s1的成员ptr
它指向整个结构。
s(引用)本身是一个包含公共成员ptr或指针(string* s)的Struct吗?
指针;引用是原语。

相关问题