Amazon Interview Question
Software Engineer / DevelopersIn addition to what Bala said,
You can never unseat a reference, so
int x,y;
int &b = x;
b = y; //Compiler error.
On a more philosophical level, think of pointers as things pointing to chunks
of memory, while references are really handles to objects (note that I am using
object in the general sense of the word, not c++ objects).
@Jasmeet bagga
you are right that "we can't unseat a reference" but
in your example you won't get compiler error...it will work fine and will assign the value of y to x via reference b....
1. A reference must be initialized when it is created but pointers can be initialized at any time.
2. Once a reference is initialized to an object, it cannot be changed to refer to another object but pointers can be pointed to another object at any time.
3. references cannot be NULL but pointers can.
Pointers and Reference looks similar but there are some difference between both of them.
- Messi April 13, 2010POINTER
1) Its not necessary to initialize the pointer at the time of declaration. Like
int a = 10;
int *P = &a; //It is not necessary
Another way is :
int a = 10;
int *P;
P = &a;
2) You can create the array of Pointer.
3) You can assign NULL to the pointer like
int *P = NULL; //Valid
4) You can use pointer to pointer.
REFERENCE
1) Its necessary to initialize the Reference at the time of declaration. Like
int &a = 10;
int &a; //Error here but not in case of Pointer.
2) You can not create the Array of reference.
3) You can not assign NULL to the reference like
int &a = NULL; //Error
4) You can not use reference to reference.