Adresy w pamięci, itp.

0

Witam, mam dręczące mnie pytanie - miejmy sobie prosty program

#include <stdio.h>
int main()
{
    int x=1;
    printf("1. %p\n2. %d\n3. %p\n4. %d\n", &x, &x, x, x);
    return 0;
} 

i jego wynik:

 1. 0028FF1C
2. 2686748
3. 00000001
4. 1

I teraz chciałbym zrozumieć, o czym mówią pierwsze 3 wyniki. Pierwszy, jak mi się wydaje, to jest adres zmiennej w pamięci. Drugi to numer komórki pamięci bądź coś w ten deseń? A trzecie to nie mam pojęcia.

3

Nie, pierwszy i drugi to adres zmiennej x, trzeci i czwarty to wartość tej zmiennej. Zmieniłeś tylko format zapisu (ale chyba szczęśliwie bez UB).

268674810 ≡ 28FF1C16 ( http://www.wolframalpha.com/input/?i=2686748+to+base+16 )
110 ≡ 116

Wystarczyło się chwilkę zastanowić ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1