Also printf("4 %d\n", &pointer); gibt dir die Adresse von "pointer" als Integer aus und printf("5 %d\n", pointer); gibt dir die Adresse von "nummer" (also die Adresse von dem Element auf das "pointer" zeigt) als Integer aus.
Also einmal alles zusammengefasst:
pointer -> gibt dir die Adresse auf die "pointer" zeigt (in deinem Fall die Adresse wo "nummer" im Speicher liegt
&pointer -> gibt dir die Adresse wo "pointer" liegt (bzw. die Adresse wo der Wert von "pointer" gespeichert ist und somit die Adresse wo die Adresse hinterlegt ist, auf die "pointer" zeigt)
*pointer -> Gibt dir den Wert zurück, auf den "pointer" zeigt (in deinem Fall den Wert von "nummer")
&pointer funktioniert nicht anders wie deine Zuweisung pointer = &nummer; ... Da gibst du "pointer" die Adresse von "nummer" ... mit &pointer bekommst du eben die Adresse von "pointer" ... denn auch ein Pointer hat eine Adresse und man kann eben auch Pointer auf Pointer machen (int **pointerPointer; ).
|