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
函数打印时它们是相同的?
最佳答案
因为您正在打印参数a
的地址,而不是它指向的对象的地址。
fn address_of<A>(a: &A){
println!("{:p}", a);
}
关于rust - 为什么作为函数参数打印时地址两个不同的值相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892476/