I'm learning linked lists , and in my manual i have the following example.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
struct element
{
int info;
element *address;
};
void insertion(element *&p,int nr)
{
element *c;
c=new element;
c->info=nr;
c->address=p;
p=c;
}
void print(element *p)
{
while(p!=0)
{
cout<<p->info<<endl;
p=p->address;
}
}
int main()
{
int nr;
struct element *p=NULL;
cout<<"Number =";
cin>>nr;
while(nr!=0)
{
insertion(p,nr);
cout<<"Number =";
cin>>nr;
}
print(p);
return 0;
}
Now , i understand the program ,except the first paramater of insertion (element *&p).
What does exactly means?Isn't element *p enough?Why we need the extra ampersand "&"?
thanks