title: reassigning to const reference
body: <p>With pointers I can do this:</p>
  
  <pre><code>int a=1;
  int b=2;
  
  const int* cnstIntPtr = &amp;a;
  // (*cnstIntPtr)++ does not work, makes sense since value pointed to is constant
  cnstIntPtr = &amp;b; // works, makes sense
  
  const int* const cnstIntCnstPtr  = &amp;a;
  // (*cnstIntCnstPtr)++; does not work, makes sense since value pointed to is constant
  // cnstIntCnstPtr = &amp;b;  does not work, makes sense since pointer is constant
  </code></pre>
  
  <p>but with references:</p>
  
  <pre><code>const int&amp; cnstIntRef = a;
  // cnstIntRef++; does not work, makes sense since const refers to value at address
  // cnstIntRef = b; why does this not work? "expression must be modifiable lvalue"
  
  const int&amp; const cnstIntCnstRef = a;
  //cnstIntCnstRef++; does not work, makes sense since const refers to value at address
  //cnstIntCnstRef = b; does not work, makes sense since const refers to value at address
  </code></pre>
  
  <p>So why can't I reassign to a const reference when the const is supposed to be referring to the value at the address (by analogy with how pointers work). If this is in general not possible, why is that and what is the meaning of the second const in</p>
  
  <p><code>const int&amp; const cnstIntCnstRef</code>?</p>