title: Warning C4477 in Visual Studio 2015
body: <p>When I compile the following code, Visual studio shows warning of C4477. Why this warning generated by visual studio? And How can I fix this code?</p>
  
  <p>warning : warning C4477: 'printf' : format string '%d' requires an argument of type 'int', but variadic argument 1 has type 'int *'</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(void) {
      int num = 0;
      int *pi = &amp;num;
  
      printf("Address of num: %d Value: %d\n", &amp;num, num);
      printf("Address of pi: %d Value: %d\n", &amp;pi, pi);
  
      return 0x0;
  }
  </code></pre>