title: What's the meaning of * and & when applied to variable names?
body: <p>In C++, what is the difference between:</p>
  
  <pre><code> void func(MyType&amp;); // declaration
  
   //...
   MyType * ptr;
  
   func(*ptr); // compiler doesnt give error
  
   func(ptr); // compiler gives error i thought &amp; represents memory address so 
              // this statement should correct as ptr is only a pointer
              // or address of some real var.
  </code></pre>