C und Zeiger

Also,

kleines Programm :

Code:
#include <stdio.h>

int main(void){
    int      i = 4;
    int *i_ptr;
    i_ptr      = &i;

    printf("Wert von i     : %d Adresse von i     : %p \n\n",i,&i);
    printf("Wert von i_ptr : %d Adresse von i_ptr : %p \n",*i_ptr,&i_ptr);

}

Als Ausgabe erhalte ich :

Wert von i : 4 Adresse von i : 0022FF74

Wert von i_ptr : 4 Adresse von i_ptr : 0022FF70

Müssten aber die Adressen nicht gleich sein oder hab ich grad nen Black Out ???
 
Da du ja die Adresse von i in i_ptr gespeichert hast musst du beim wiedergeben einfach i_ptr statt &i_ptr angeben, weil du ja nich auf den Standort von i_ptr zeigen willst.

Hoffe habe das halbwegs verständlich erklärt.
 
Also :

i_ptr : Gibt die Adresse aus, auf die i_ptr zeigt.
&i_ptr : Gibt die eigene Adresse von i_ptr aus.
*i_ptr : Gibt den Wert aus, auf den i_ptr zeigt.

Ja ?
 
Ja so sollte es stimmen.

EDIT: Die Adressen sind einfach deshalb nich gleich, weil ja i_ptr auch eine Variable ist und du durch &i_ptr den Ort von i_ptr angibst und dieser nicht gleich dem Ort von i ist.
 
Zurück
Oben