If I write:
int a = 5;
int& b = a;
in c++, (I have to be careful in how I ask this), can a and b be used completely interchangeably?  Or does a have some properties, restrictions, semantics, etc. that b doesn't, or vice versa?
I know that the templating machanism will detect the difference between a plain type and a reference type. But, is there any other situation?
 
     
    