title: what does this mean *(int*)&x when typecasting?
body: <p>I am looking an example code for invert <code>sqrt</code> used in quake.</p>
  
  <p>I see a variable of type float: <code>float x = 16;</code></p>
  
  <p>and then an <code>int</code> variable takes the value of this expression: <code>int i = *(int*)&amp;a;</code></p>
  
  <p>The way I understand it(from right to left) is that it takes the address of the variable <code>a</code>, typecasts it in to an integer pointer and then takes the value of that pointer and assigns it to <code>i</code>.</p>
  
  <p>when I output the variable <code>i</code> in the console it's a big integer value.
  can someone explain more in dept of what is going on here please ?</p>
  
  <p>because I expected the variable <code>i</code> to be <code>16</code>.</p>