Einzelnen Beitrag anzeigen
Alt 09.04.2002, 17:00   #8
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Null problemo dazu denn:

int **_16bit_variable;

*_16bit_variable liefert - und das ist nativer C-Code - schließlich und endlich auch eine Adresse, weil hier ein Zeiger auf einen Zeiger auf einen Integerspeicherplatz (2 Byte Datentyp) definiert worden ist mit int **_16bit_variable; ZeigeraufZeigervariablename.

Entscheidend bei so einer Überladerei ist das Holzhackenprogrammieren außen vor zu lassen. * liefert immer einen Wert, Zeiger auf Zeiger liefern halt eine Adresse logischerweise, insofern legitimerweise.

Und & ist ebenso einzusetzen, abseits der törichten Verwendung als etwas anderes als als Adressenlieferantoperator. Zweimal als, schon schön das Leben Davor sogar bereits gar einmal. Tja, in klaren Worten: & liefert eine Adresse, wer sich skalare Werte liefern lässt durch das Überladen handelt damit fahrlässig. Das heißt man sollte tunlichst auf die mathematische Funktionalität von C/C++ nicht verzichten um Tricks umzusetzen.

Solche Ratschläge finden sich auch in Büchern zu C++ um derartige Brachial- nicht Anfänger- Fehler nicht zu begehen.

* bedeutet 'Wert von'
& bedeutet 'Adresse von'

mfg
Kikakater
kikakater ist offline   Mit Zitat antworten