It is quite confusing, because it implies that this is equivalent and equivalently wouldn't work:
int *ptr = &x;
ptr = 20;
The rvalue/lvalue distinction is completely unrelated to pointers, holding memory addresses versus numbers representing memory addresses, etc. The & operator simply doesn't give you an lvalue, like most operators in C, and this has nothing to do with addresses, pointers, or anything of the like
After rereading it a couple times I think you and others were right. I was trying to say something that in the end muddied issue. I have removed the section on r-value and l-values.
Comments
It is quite confusing, because it implies that this is equivalent and equivalently wouldn't work:
The rvalue/lvalue distinction is completely unrelated to pointers, holding memory addresses versus numbers representing memory addresses, etc. The & operator simply doesn't give you an lvalue, like most operators in C, and this has nothing to do with addresses, pointers, or anything of the likeAfter rereading it a couple times I think you and others were right. I was trying to say something that in the end muddied issue. I have removed the section on r-value and l-values.