005
15.02.2005, 12:38 Uhr
virtual
Sexiest Bit alive (Operator)
|
Nein: Zeiger != Referenz. Die Aussage von Dir habe ich überlesen und ist jedenfalls falsch. Es mag sein, daß eine Referenz von einer Implementierung intern als Zeiger realisiert wird, aber Referenzen sind was ganz anderes als Zeiger aus Programmiersicht.
C++: |
int a[10]; // a ist Array int* a; // a ist Zeiger int& a = ...; // a ist Referenz
|
All die obigen a's sind Unterschiedliche Dinge! Wenn a ein Array ist, so kannst Du in den meisten Fällen a synonym wie einen Zeiger verwenden; genauer: a kann gleichzeitig ähnlich einem Zeiger auf das erste Element verwendet werden. Aber wenn Du mal den Ausdruck "a++" betrachtest, dann erkennst Du, daß es immer was anderes macht: 1. ist a ein Array, ist a++ nicht definiert => Compilerfehler 2. ist a ein Zeiger, zeigt a anschließend auf das nächste Element nach dem ursprünglichen a 3. ist a eine Referenz, so inkrement a++ den Inhalt von dem Wert, der referenziert wird.
Wenn man nun ein array von 10 ints hat, dann gibt es verschiedene Möglichkeiten, darauf einen Zeiger zu definieren:
C++: |
int array[10]; int** a = &array; int (*b)[10] = &array;
|
In beiden Fällen (a und b) kann man die Variable als einen Zeiger auf einen Zeiger auf ein int ansehen; allerdings sind das unterschiedliche typen; mithin kannst Du nicht ohne weiteres dem a das b zuweisen oder umgekehrt. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |