title: non-const lvalue reference to type 'const int *' cannot bind to a value of unrelated type 'int *
body: <pre><code>int main(int argc, char const *argv[])
  {    
     int *i;
     const int * &amp;j = i;
  }
  </code></pre>
  
  <p>This code gives the error <code>error: non-const lvalue reference to type 'const int *' cannot bind to a value of unrelated type 'int *</code></p>
  
  <p>But it's not clear to me why this is not allowed. I defined <code>j</code> to be a reference to a pointer to a constant int. So if I set it equal to <code>i</code>, aren't I saying that <code>j</code> is a reference of <code>i</code> and we are not allowed to modify the <code>int</code> pointed to by <code>i</code> through <code>j</code>? </p>