What is the difference in the following code:-
int a;
int *p;
p=&a;
function(p);
and
int a;
function(&a);
I was reading a book where sometimes they have used the first code and sometimes the other. Its not a good book though (by a local author).
Will both codes work the same way or is there any difference?
Also is there any difference in terms of efficiency and does it matter that much?
Thanks
As far as I know compiler implements references as pointers. So there should be no difference in performance. But references are more strict and can protect you from making mistakes. For example you can’t rebind references or can’t perform arithmetic with them
Also some people prefere to pass pointers to the function that modify object. For example
They say it’s more readable when you see:
than
EDIT
You can think of
referenceas another name of the object it refers to. So all the changes made toreferenceare applied to the object. Here is an example: