Adresy w pamięci, itp.

2014-10-25 00:53

Rejestracja: 6 lat temu

Ostatnio: 1 tydzień temu

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.

Pozostało 580 znaków

kq
2014-10-25 01:02
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 2 minuty temu

Lokalizacja: Szczecin

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ć ;)


To wiele wyjaśnia. Dziękówka ;) - kalwi 2014-10-25 01:06

Pozostało 580 znaków

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