zeiger :/ :)



  • void main(void)
    {

    int var_test;
    int *ptr_test;

    var_test = 12;

    ptr_test = &var_test;

    printf("Variable:\n\n");
    printf("var_test: %i\n", var_test);
    printf("&var_test: %p\n", &var_test);

    printf("\n\n\nPointer\n\n");
    printf("ptr_test: %p\n", ptr_test);
    printf("&ptr_test: %p\n", &ptr_test);
    printf("*ptr_test: %i\n", *ptr_test);

    getchar();

    }

    gibt folgendes aus:

    Variable:

    var_test: 12
    &var_test: 0012FF88

    Pointer

    ptr_test: 0012FF88
    &ptr_test: 0012FF84
    *ptr_test: 12

    ist mir auch fast alles klar .. aber eben nur fast 😕

    Bei Variable:

    var_test: gibt wert aus
    &var_test: gibt addresse aus wo die variable abgelegt ist

    Bei Pointer:
    ptr_test: gibt addresse aus wo die variable var_test liegt
    *ptr_test: gibt den wert von var_test aus

    aber was macht:

    &ptr_test:

    erster gedanke ... gibt die Adresse des pointers aus
    [ ... also nicht die addresse der variablen auf die der pointer zeigt ]

    aber warum ist dann der Addresswert kleiner als der der Variablen
    wenn ich doch zuerst die Variable deklariere und dann den Pointer

    für mich wäre es logisch gewesen wenn die beiden adressen vertauscht wären

    also

    Speicher

    0 - 1 - 2 ....... VARIALBE - POINTER ...... unendlich :>

    aber so wies mom scheint ist es:

    0 - 1 - 2 ...... Pointer - Variable ...... unendlich

    hoffe ihr könnt mir helfen



  • Waechst nicht der Stack nach unten?
    Also: 0xFFFF - 0xFFFE - .... - Varialbe - Pointer - ... 1 - 0



  • Entyl_Sa schrieb:

    Waechst nicht der Stack nach unten?
    Also: 0xFFFF - 0xFFFE - .... - Varialbe - Pointer - ... 1 - 0

    achso .. 😃
    ja wenn mir das mal einer sagen würde ... dann ist es klar

    also sehe ich das richtig das

    &ptr_test: die addresse des pointers ausgibt ?

    p.s. warum hat man den "stack" nicht anderst aufgebaut .. das er nach oben zählt

    hängt das evtl damit zusammen das man in assembler eigentlich auch nur auf
    zero bzw not zero prüfen kann ?

    thx



  • ja das
    &ptr_test
    gibt die adresse der pointer-variable aus
    (der pointer ist ja nur eine variable, die eine adresse aufnehmen kann).

    und wie der stack aufgebaut wird das kommt auf dein system an...


Anmelden zum Antworten