title: Why does reading into a string buffer with scanf work both with and without the ampersand (&)?
body: <p>I'm a little bit confused about something. I was under the impression that the correct way of reading a C string with <code>scanf()</code> went along the lines of</p>
  
  <p>(never mind the possible buffer overflow, it's just a simple example)</p>
  
  <pre><code>char string[256];
  scanf( "%s" , string );
  </code></pre>
  
  <p>However, the following seems to work too,</p>
  
  <pre><code>scanf( "%s" , &amp;string );
  </code></pre>
  
  <p>Is this just my compiler (gcc), pure luck, or something else?</p>