title: pointer arithmetic - Getting a desired next address from a given address
body: <p>When I execute the program I expect the address to be <code>0xffc10004</code>:</p>
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdint.h&gt;
  
  int main()
  {
      uint32_t *a = (uint32_t *)0xFFC10004;
      printf(&quot;%p\n&quot;,(a+ 0x40));
      return 0;
  }
  </code></pre>
  <p>But the result I get is <code>0xFFC10104</code></p>
  <p>When I replace <code>0x40</code> with <code>0x10</code> I get the expected address <code>0xffc10004</code>. Can anyone explain the reason?</p>