czytanie kodu c

VW
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 lat
  • Postów:8
0

prosiłbym o wyjasnienie niezrozumiałego dla mnie sformułowania w kodzie:

Kopiuj
short *ptab;
//informacja: tab = 00A91628
//informacja: sizeof(short) = 2
ptab = tab + -6;
printf("$%d", *(ptab+=6));
printf("$%p", (tab + 6));
printf("$%p", &(ptab-=-2)[-2]);
printf("$%d$", (ptab-=-1)[2]); 

otóż, nie wiem co 'mają robić dwie ostatnie linie tego kodu , a dokładniej mówiąc co robią te kwadratowe nawiasy'.
Z góry dzięki za jakąkolwiek pomoc!

edytowany 1x, ostatnio: kq
twonek
zawsze się zastanawiam, jaki cel ma prowadzący (bo podejrzewam, że to jakieś ćwiczenie), który daje taki kod komuś kto dopiero się uczy języka
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Lokalizacja:Szczecin
5

W C (i C++, pomijając przeładowane operatory) zapis a[b] jest równoznaczny z *(a+b), a więc i z b[a].

Tak więc (ptab-=-1)[2] to ptab[3] (oraz jednoczesna inkrementacja ptab). &(ptab-=-2)[-2] to to samo co &ptab[0]/&*ptab lub ptab (oraz jednoczesna podwójna inkrementacja ptab)


edytowany 2x, ostatnio: kq
VW
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 lat
  • Postów:8
0

Da się jaśniej jeżeli można :D

kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Lokalizacja:Szczecin
1

Przecież masz napisane analogicznie do tego co masz w poprzednich dwóch liniach, które rozumiesz. Dalej to już podstawy dowolnego kursu C, część o wskaźnikach.


VW
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 lat
  • Postów:8
0

W takim razie czy mógłbyć podać, co wypisałby ten kod???

Bartosz36
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 4 lata
  • Postów:348
0

Dlaczego nie odpalisz środowiska i nie sprawdzisz samemu?
Dodatkowo: wiele środowisk ma wbudowany debuger, dzięki któremu będziesz dokładnie widzieć wartość i zawartość wskaźników i działanie tego co napisałeś - szybciej w ten sposób zrozumiesz co i jak ;)


ExtendedVector czyli std::vector<T> z wygodą List<T> z .NET (ForEach, FindAll, itd...)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.