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;
...