title: Why does printing a pointer print the same thing as printing the dereferenced pointer?
body: <p>From the Rust guide:</p>
  
  <blockquote>
    <p>To dereference (get the value being referred to rather than the reference itself) <code>y</code>, we use the asterisk (<code>*</code>)</p>
  </blockquote>
  
  <p>So I did it:</p>
  
  <pre><code>fn main() {
      let x = 1;
      let ptr_y = &amp;x;
      println!("x: {}, ptr_y: {}", x, *ptr_y);
  }
  </code></pre>
  
  <p>This gives me the same results (x=1; y=1) even without an explicit dereference:</p>
  
  <pre><code>fn main() {
      let x = 1;
      let ptr_y = &amp;x;
      println!("x: {}, ptr_y: {}", x, ptr_y);
  }
  </code></pre>
  
  <p>Why? Shouldn't <code>ptr_y</code> print the memory address and <code>*ptr_y</code> print 1? Is there some kind of auto-dereference or did I miss something?</p>