For example in
int *a = 5;
MyFunc(&a);
What are the behind the scenes working of '&' Is it just creating a pointer to the pointer and deferencing it automatically? or is it doing something different.
Is there any way to pass by "true" reference in C++ or will everything be a pointer passed by value?