title: how does the ampersand(&) sign work in c++?
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/57483/what-are-the-differences-between-pointer-variable-and-reference-variable-in-c">What are the differences between pointer variable and reference variable in C++?</a>  </p>
  </blockquote>
  
  
  
  <p>This is confusing me:</p>
  
  <pre><code>class CDummy 
  {
  public:
     int isitme (CDummy&amp; param);
  };
  
  int CDummy::isitme (CDummy&amp; param)
  {
    if (&amp;param == this)
    { 
         return true; //ampersand sign on left side??
    }
    else 
    {    
         return false;
    }
  }
  
  int main () 
  {
    CDummy a;
    CDummy* b = &amp;a;
  
    if ( b-&gt;isitme(a) )
    {
      cout &lt;&lt; "yes, &amp;a is b";
    }
  
    return 0;
  }
  </code></pre>
  
  <p>In C &amp; usually means the address of a var. What does it mean here? Is this a fancy way of pointer notation? </p>
  
  <p>The reason I am assuming it is a pointer notation because this is a pointer after all and we are checking for equality of two pointers.</p>
  
  <p>I am studying from cplusplus.com and they have this example.</p>