title: What is the difference between float pointer and int pointer address?
body: <p>I tried to run this code,</p>
  
  <pre><code>int *p;
  float q;
  q = 6.6;
  p = &amp;q;
  </code></pre>
  
  <p>Though it will be a warning, but i think <code>&amp;q</code> and <code>p</code> are of same size, so <code>p</code> can have an address of <code>q</code>. But when I print <code>&amp;q</code> and <code>p</code> I am getting different output.
  This is my output</p>
  
  <pre><code>*p =  6.600000 
   q = 0.000000, p = 0x40d33333, &amp;q = 0x7fffe2fa3c8c 
  </code></pre>
  
  <p>What is that I am missing?
  And <code>p</code> and <code>&amp;q</code> is same when both pointer and variable type is same.</p>
  
  <p>My complete code is</p>
  
  <pre><code>#include&lt;stdio.h&gt;
  void main()
  {   
      int *p;
      float q;
      q = 6.6;
      p = &amp;q;
      printf("*p =  %f \n q = %f, p = %p, &amp;q = %p \n",*p,q,p,&amp;q);
  }
  </code></pre>