title: Does println! borrow or own the variable?
body: <p>I am confused with borrowing and ownership. In the Rust <a href="https://doc.rust-lang.org/book/first-edition/references-and-borrowing.html" rel="noreferrer">documentation about reference and borrowing</a></p>
  
  <pre><code>let mut x = 5;
  {
      let y = &amp;mut x;
      *y += 1;
  }
  println!("{}", x);
  </code></pre>
  
  <p>They say</p>
  
  <blockquote>
    <p><code>println!</code> can borrow <code>x</code>.</p>
  </blockquote>
  
  <p>I am confused by this. If <code>println!</code> borrows <code>x</code>, why does it pass <code>x</code> not <code>&amp;x</code>?</p>
  
  <p>I try to run this code below</p>
  
  <pre><code>fn main() {
      let mut x = 5;
      {
          let y = &amp;mut x;
          *y += 1;
      }
      println!("{}", &amp;x);
  }
  </code></pre>
  
  <p>This code is identical with the code above except I pass <code>&amp;x</code> to <code>println!</code>. It prints '6' to the console which is correct and is the same result as the first code.</p>