use std::io::Write;
fn main() {
let mut x = [0u8; 10];
let mut y = &mut x[..];
y.write(b"1");
y.write(b".");
println!("{:p}", y);
println!("{:?}", y);
println!("{:?}", x);
}
我得到以下输出
0x7ffeddab2b8a
[0, 0, 0, 0, 0, 0, 0, 0]
[49, 46, 0, 0, 0, 0, 0, 0, 0, 0]
我认为println!("{:?}", y);
应该打印出地址值或底层数据的值.但它不会在这两个选项中做任何事情.(阅读堆栈溢出-Why does printing a pointer print the same thing as printing the dereferenced pointer?上的答案时,我认为它应该打印出xie [49, 46, 0, 0, 0, 0, 0, 0, 0, 0]
的值)
我的问题是
- 当我们使用print语句打印y时,
[0, 0, 0, 0, 0, 0, 0, 0]
指的是什么? - 如何打印y的基础值(仅使用y)?
- 有没有人能解释一下为什么它打印
[0,0,0,0,0,0,0,0]