Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 14 sty 2025, o 12:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 27 cze 2013, o 11:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 kwi 2013
Posty: 187
Lokalizacja: Kobiernice
Pomógł: 13

Witam
Jestem w trakcie lektury niebieskiej księgi, czyta mi się ją bardzo przyjemnie, niemniej jednak utknąłem właśnie na wskaźnikach. Pozwolę sobie wkleić kawałek tekstu, który znajduje się w erracie:
Kod:
fun2(tab);    // przekazanie adresu zerowego elementu do fun2
fun2(&tab[3]);  // przekazanie adresu czwartego elementu do fun2
fun2(&(tab+5));  // przekazanie adresu szóstego elementu do fun2

Chodzi mi o trzecią linijkę tekstu. Może się mylę, w takim razie proszę o sprostowanie, ale wydaje mi się, że jeśli w funkcji odwołuję się do tablicy bez nawiasów kwadratowych, to tak jak bym się odwoływał do adresu początku tablicy. W naszym przypadku mamy tab+5, a więc odwołuję się do adresu zwiększonego o np. 5 bajtów (dla tablicy typu char). Zatem skoro odwołuję się już do adresu, to czy napisanie "&(tab+5)" nie jest błędem ("and" jakoś dziwnie mi się wyświetlił)? Bo to tak, jakby odwoływać się do adresu adresu.

I jeszcze jedna wątpliwość, mniejszej wagi. Chodzi mi o komentarz w pierwszej linijce:
Kod:
// przekazanie adresu zerowego elementu do fun2
Wydaje mi się że bardziej poprawnie jest napisać
Kod:
// przekazanie adresu pierwszego elementu do fun2
No bo jeśli tab (czyli &tab[0]) to adres zerowego elementu, natomiast &tab[3] to adres czwartego elementu, to coś mi się tu nie do końca zgadza. Zgodnie z tokiem myślenia z drugiej linijki &tab[2] będzie adresem trzeciego elementu, &tab[1] będzie adresem drugiego, a &tab[0] jest adresem zerowego? A gdzie pierwszy? :)

Ze wskaźnikami próbowałem oswoić się już dawno temu, jednak nie potrafiłem się do nich przyzwyczaić. Teraz czytając Mirkową książkę chcę zabrać się za nie raz a porządnie. Dlatego moje pytania to nie malkontenckie wyszukiwanie najmniejszych błędów znajdujących się w książce, tylko chęć jak najlepszego zrozumienia tematu i pozbycie się wątpliwości podczas lektury książki.
Pozdrawiam :D

_________________
zapraszam na bloga http://bakcyl8bit.blogspot.com/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2013, o 12:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27345
Lokalizacja: Szczecin
Pomógł: 1041

artur85 napisał(a):
to czy napisanie "&(tab+5)" nie jest błędem


Dziękuję za uwagę - oczywiście to jest błędem - niestety chciałem pokazać że można napisać tab+5 i szybko poprawiłem ale niepotrzebnie zostawiłem to &() .... masz rację to babol - więc dobrze myślisz

------------------------ [ Dodano po: 1 minucie ]

Niestety odnośnie liczenia elementów że niby nie powinno być że element zerowy tylko pierwszy - to ABSOLUTNIE się nie zgadzam. Może tak zostać ;) jak jest ....

indeksy liczmy od zera więc co za problem powiedzieć że element zerowy ? żaden

------------------------ [ Dodano po: 3 minutach ]

artur85 napisał(a):
Dlatego moje pytania to nie malkontenckie


żadne malkontenckie - BARDZO dobre i aż cieszę się gdy ktoś pyta o takie rzeczy a nie w zaciszu swojego pokoju poddaje się gdy czegoś nie zrozumie a później pisze na forum, że jednak C to nie dla niego - podczas gdy nawet nie pokusił się aby o coś dopytać

a ty w związku z tym że pytasz to jeszcze BABOLA znalazłeś w książce więc widać że łapiesz już podstawy wskaźników ;) SUPER - jeszcze raz dzięki za uwagę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO