Wyświetlanie elementów i ich adresów tablic struktur

0

Witam,
Potrzebuję pomocy z zadaniem 6 z linku poniżej, dalsza część zadania znajduję się na ostatniej stronie, wraz z rozwiązaniem.

http://orfi.uwm.edu.pl/~an_daw/2013_14/PS_STAC/MATERIALY/EGZAMINY/EGZ3/INF96x028_N.pdf

I teraz mam mały problem
Przykładowo

printf ("%c", *(tt[3].p2 + 2)); 
  1. tt[3]- Przechodzę do 4 wiersza tablicy tt
  2. tt[3].p2 Odwołuję się do tablicy p2 w strukturze, i teraz nie wiem co się dokładnie dzieje, wychodzi mi na to że teraz wskazuję na początek wyrazu "Lepik", a dokładniej to na "L", analogicznie gdyby było tt[3].liczba byłoby to "15" tak?
  3. tt[3].p2 + 2 tutaj przesuwam się o 2 w prawo i jestem na "p"

Gorzej jest z adresami bo tutaj już nie mam pojęcia o co chodzi...
Jeżeli mógłby ktoś to wytłumaczyć, lub podać link to bardzo bym był wdzięczny

A i jeszcze jedno

printf ("%c", *(tt[3].p2+2));
printf ("%c", (tt+3)->p2[2]);

To jest to samo tak?

PS: Przepraszam, całkowicie zapomniałem podać link, już naprawione:)

1

to: printf ("%c",*(tt[3].p2+2)); jest to samo co:

  1. printf ("%c",tt[3].p2[2]);
  2. printf ("%c",(tt+3)->p2[2]);
  3. printf ("%c",*((tt+3)->p2+2));
0

Dzięki, a co do obliczania adresu to przykładowo mam tablice
short int tab[]={-13,91,-16,43,79,551,62};
short int=2 bajty,
adres tab = FF40

printf("%x", ptab+3);

Czyli to będzie FF40 + 3*2bajty czyli FF40+6, tutaj zamieniam tą 6 na szesnastkowy wychodzi 6 i wynik to FF46, dobrze?

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