This is not a conversion. When you have a variable type T & , where T is a random type, you basically say: "I declare a name that is an alias for another name or possibly an anonymous value." This is more like a typedef than a pointer.
Links are often implemented as addresses, but this is not a good model to think about what they are.
In your example, what are you puzzled:
int * const &y = &x;
will work fine. Then y becomes an alias for the temporary result of accepting the address x . Please note that this is a link to a pointer. It must be a reference to a constant pointer, because it is a reference to a temporary value.
source share