【发布时间】:2017-02-21 03:57:39
【问题描述】:
我有以下堆栈和堆分配的变量:
let var1 = 10;
let var2 = Box::new(10);
打印这些输出相同的值,10:
println!("var1 ={} var2 ={}", var1, * var2);
当我使用mem::size_of_val() 检查大小时,var1 是 4,var2 是 8。
var2 不是指向堆的指针吗?为什么指针会大于堆栈变量(var1)?
另外,在println!() 中使用“*”(即*var2)是否应该做不同的事情?无论哪种方式,我都得到 10 个。
【问题讨论】:
标签: pointers reference rust smart-pointers memory-layout