title: void*,pointers of strings and characters
body: <pre><code>#include&lt;stdio.h&gt;
  #include&lt;conio.h&gt;
  void main() 
  {
     char cr[] = "Yash";
     clrscr();
     printf("%p\n",(void*)cr);
     printf("%p\n",cr);
     printf("%p\n",&amp;cr);
     printf("%p\n",&amp;cr[0]);
     printf("%p\n",cr[0]);
     printf("%p\n",(void*)cr[0]);
  
     printf("%c\n",&amp;cr[0]);
     printf("%s\n",&amp;cr);
     printf("%c\n",(void*)cr[0]);
     printf("%s\n",(void*)cr);
     getch();
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre class="lang-none prettyprint-override"><code>FFEE
  FFEE
  FFEE
  FFEE
  0059
  0059
  ε
  Yash
  Y
  Yash
  </code></pre>
  
  <p><strong>Question:</strong>
  I fail to understand exactly the output which I get in this code. Can somebody please explain each output why is it the way it is. Especially why does <code>printf("%c",&amp;cr[0]);</code> give some sought of <code>ε</code> this weird or may be be null symbol?
   And why are outputs of <code>(void*)cr[0]</code> and <code>cr[0]</code> different from the other 3 in the half of <code>%p</code>? If they are just addresses then why different?(I am really really sorry for the last minute changes I made:/)</p>