006
10.01.2009, 17:58 Uhr
Lensflare
|
also p wurde ja als Pointer deklariert. also mit *
Deswegen erwartet der Compiler, dass dem pointer auch Adressen zugewiesen werden und nichts anderes.
&a ist eine adresse und wird fehlerfrei zugewiesen.
wenn ich *p=&a
schreiben würde, dann würde der compiler verstehen: Weise dem Wert, der an der Adresse von p steht, die Adresse von a zu. also einem int die Adresse eines ints zuweisen.
Auch wenn die adresse theoretisch in ein int passen würde, muss der compiler davon ausgehen dass du einen denkfehler gemacht hast und dies als fehler melden.
Nachtrag: Man deklariert einen pointer mit * und dann verwendet man ihn ohne den stern. man muss den copiler nicht daran erinnern, dass es ein pointer ist. das weiss er schon
ein stern bei einem pointer beim zugriff würde den Wert an seiner Adresse ansprechen.
Das ist leider das verwirrende, deswegen habe ich die deklaration und den Zugriff im ersten posting so getrennt beschrieben -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) Dieser Post wurde am 10.01.2009 um 18:07 Uhr von Lensflare editiert. |