title: How to print variable addresses in C?
body: <p>When i run this code. </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  void moo(int a, int *b);
  
  int main()
  {
      int x;
      int *y;
  
      x = 1;
      y = &amp;x;
  
      printf("Address of x = %d, value of x = %d\n", &amp;x, x);
      printf("Address of y = &amp;d, value of y = %d, value of *y = %d\n", &amp;y, y, *y);
      moo(9, y);
  }
  
  void moo(int a, int *b)
  {
      printf("Address of a = %d, value of a = %d\n", &amp;a, a);
      printf("Address of b = %d, value of b = %d, value of *b = %d\n", &amp;b, b, *b);
  }
  </code></pre>
  
  <p>I keep getting this error in my compiler.</p>
  
  <pre><code>/Volumes/MY USB/C Programming/Practice/addresses.c:16: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’
  /Volumes/MY USB/C Programming/Practice/addresses.c:17: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int **’
  /Volumes/MY USB/C Programming/Practice/addresses.c:17: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘int *’
  /Volumes/MY USB/C Programming/Practice/addresses.c: In function ‘moo’:
  /Volumes/MY USB/C Programming/Practice/addresses.c:23: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’
  /Volumes/MY USB/C Programming/Practice/addresses.c:24: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int **’
  /Volumes/MY USB/C Programming/Practice/addresses.c:24: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘int *’
  </code></pre>
  
  <p>Could you help me?</p>
  
  <p>Thanks</p>
  
  <p>blargman</p>