title: Understanding complex pointer and address-of operators using *&*&p in C
body: <p>Can any one explain how the printf is printing hello in the following?</p>
  
  <pre><code>#include&lt;stdio.h&gt;
  
  void main()
  {
   char *p;
   p="hello";
   printf("%s",*&amp;*&amp;p);
  }
  </code></pre>
  
  <p>I know that *&amp;p...means value in p, i.e the address of string "hello".  What is happening in the initial *&amp; </p>