I've just started C++ and am trying to get to grips with pointers, consider the following 2 programs:
Code:void change(int &i) { i = 5; } int main() { int i = 0; change(i); printf("%d\n",i); }The first one passes the reference of i, and the second passes up a pointer to i(correct me if I'm wrong)Code:void change(int *i) { *i = 5; } int main() { int i = 0; change(&i); printf("%d\n",i); }
What is the difference between the two methods of passing variables? As far as I can see, both edit the value of i directly. Why are pointers more useful?
Thanks