title: How to get the address of memory location to which a pointer is pointing
body: <pre><code> #include &lt;stdio.h&gt;
  
      int main(void)
      {
          int i = 3;
          int* j = &amp;i;
          printf("%u",j);
      }
  </code></pre>
  
  <p>The above code should print out the address (an unsigned integer) of memory block in which integer 3 is contained. But instead I am getting this error-
  <code>error: format specifies type 'unsigned int' but the argument has type 'int *'</code>.</p>
  
  <p>I confirmed from various sources that:<br>
  1. <code>*j</code> refers to "value at address stored in j"<br>
  2. <code>&amp;j</code> refers to address of memory block in which pointer j is stored.<br>
  3. j contains an unsigned int value which is the address of memory block at which j is pointing.</p>