When we reference the Box directly, we refer to the stack;
And we need to deref the box first to help get a reference to the heap value.
let a_box = Box::new(2);
let a_box_stack_ref = &a_box;
let a_box_heap_ref = &*a_box;
My question is Vec and String are all made of Box,
why do &Vec and &String refer to the head instead of the Stack just like the Box do?
These unaligned design makes me feel surprised.