In C gab es nur Zeiger:
int i; int *p; // p is pointer to int i = 1; p = &i; printf("i = %d\n",i); printf("*p = %d\n",*p); *p = 2; printf("i = %d\n",i); printf("*p = %d\n",*p);
In C++ gibt es zusätzlich Referenzen, d.h. man kann sich Aliase von Variablen erzeugen:
int i; int& j=i; // j becomes a reference to (or an alias for) i i=0; cout << "i = " << i << endl; cout << "j = " << j << endl; j=2 cout << "i = " << i << endl; cout << "j = " << j << endl;
Referenzen müssen initialisiert werden und können anschließend nicht mehr geändert werden.
Referenzen sind besonders bei der Parameterübergabe sinnvoll aber auch gefährlich:
void swap( int& i, int& j ) { int h=i; i=j; j=h; } ... x=17; y=13; cout << "x = " << x << ", y = " << y << endl; swap(x,y); cout << "x = " << x << ", y = " << y << endl; ...