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
函数打印时它们是相同的?
答案 0 :(得分:4)
因为您要打印参数a
的地址,而不是它所指向的地址。
fn address_of<A>(a: &A){
println!("{:p}", a);
}