title: issue in double pointer address addition
body: <p>I have got one issue from a open source code in pointers side, which i have tried to replicate in this below small snippet. </p>
  
  <pre><code>int main()
  {
  int **a=0x0;
  printf ("a = %d Add = %d\n", a, a+75);
  return 1;
  }
  </code></pre>
  
  <p>Expectation is to get 75/0x4B but this code gives 300 in 32 bit and 600 in 64 bit machines.</p>
  
  <p>Output:</p>
  
  <pre><code>a = 0 Add = 600
  </code></pre>
  
  <p>But the ideology behind to access the added position i.e 75th position in Hash table.</p>
  
  <p>So it should be </p>
  
  <pre><code>printf ("a = %d Add = %d\n", a, sizeof (a)+75);
  </code></pre>
  
  <p>But i couldn't able to guess why this 300 or 600 output. could anyone please point out?</p>
  
  <p>I went till a point where there is some left shift internally happening since:</p>
  
  <pre><code>75 - 1001011
  600 - 1001011000.
  </code></pre>
  
  <p>Solutions are appreciated. Thanks in advance.</p>