I found this symbols in a function declaration several times, but i don't know what they mean, if it is something stupid I apologize for the question.
like this:
That is taking the parameter by reference. So in the first case you are
taking a pointer parameter by reference so whatever modification you do
to the value of the pointer is reflected outside the function. Second is
the simlilar to first one with the only difference being that it is a
double pointer. See this example: void pass_by_value(int* p) { //Allocate memory for int and store the address in p p = new int; } void pass_by_reference(int*& p) { p = new int; } int main() { int* p1 = NULL; int* p2 = NULL; pass_by_value(p1); //p1 will still be NULL after this call pass_by_reference(p2); //p2 's value is changed to point to the newly allocate memory return 0; }