Witam ,już drugi raz przerabiam kurs P.Mirosława zanim będę poznawał programowanie obiektowe . Wcześniej przyznam że uczyłem się tak byle było (dlatego powtarzam też ten kurs). Teraz bardziej wnikam w bardziej szczegóły ,jestem na etapie wskaźników i jest to dla mnie jak i dla wielu innych prawdziwa zmora . Mam do wskaźników kilka pytań i fragmentów kodu które nie rozumiem w tym również te z kursu . Dziękuje wam za wszelkie zainteresowanie i pomoc :
Zapis z użyciem gwiazdki i bez :
wiem że przy użyciu gwiazdki pracujemy na wartości zmiennej na którą wskazuje wskaźnik a bez niej na wskaźniku , czyli możemy go przesunąć o kilka bajtów do przodu i przestawić na inną szufladkę w tablicy ...
Jak więc wytłumaczyć poniższy fragmenty kodu z kursu gdzie gwiazdka jest użyta nawet do przesunięcia wskaźnika na inną wartość :
for(int i=0; i<n; i++) { *wskaznik=i; *wskaznik+=50; *wskaznik++; //jakim prawem to działa skoro jest tu gwiazdka ?? }
Sposoby wykonywania operacji na wskaźnikach :
używając dynamicznej alokacji :
int n=10; int *w = new int[n];
możemy użyć tej tablicy do operacji w pętlach :
for(int i=0; i<n; i++) { cout<<w; w++; }
a pod spodem inny zapis :
for(int i=0; i<n; i++) { cout<<w[i]; }
czy te zapisy się czymś różnią ? Np w drugim przykładzie następują błędy przy pokazywaniu adresu jakie powinna wyświetlać tablica a przy pierwszym chodzi wszystko ok . Z kolei do sortowania by pracować na orginalnych zmiennych użyjemy tej drugiej metody od czego to zależy ?
Wiem że te dylematy wynikają z mojej nie wiedzy ale proszę o wyrozumiałość :)