【问题标题】:Why are the address two different values the same when printed as function parameters?为什么作为函数参数打印时地址两个不同的值相同?
【发布时间】:2017-08-26 06:11:27
【问题描述】:
fn main() {
    println!("{:p}", &"aravindh");
    println!("{:p}", &"test");
    address_of(&"aravindh");
    address_of(&"test");
}

fn address_of<A>(a:&A){
    println!("{:p}", &a);
}

输出是:

0x10da08260
0x10da08278
0x7fff52231990
0x7fff52231990

虽然前两个字符串的地址不同,为什么通过address_of函数打印时它们是相同的?

【问题讨论】:

    标签: rust


    【解决方案1】:

    因为您打印的是参数a 的地址,而不是它所指向的东西的地址。

    fn address_of<A>(a: &A){
        println!("{:p}", a);
    }
    

    【讨论】:

    • @AravindhS:就在那儿。 **指向答案中的代码示例**
    • 糟糕。我错过了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2022-01-22
    • 2016-12-18
    相关资源
    最近更新 更多