C pozwala stworzyć sytuację, w której wiele wskaźników odnosi się do tej samej lokalizacji w pamięci. Można zadeklarować wiele wskaźników i sprawić, aby wszystkie wskazywały tę samą zmienną. Nie jest to wyłącznie cecha teoretyczna. Dzieje się tak cały czas w prawdziwym kodzie.
Rozważ następujący fragment:
Tutaj p otrzymuje adres i. q robi to samo. Wtedy r przyjmuje wartość p. Ponieważ p przechowuje adres i, r wskazuje teraz także na i. Operator przypisania kopiuje adres z prawej strony na lewą. Nie kopiuje danych. Kopiuje lokalizację.
Po wykonaniu tych linii zmienna i faktycznie otrzymała aliasy. Możesz teraz odwoływać się do liczby całkowitej „i” poprzez jej oryginalną nazwę lub dowolny ze wskaźników.
Zmienna i ma teraz cztery nazwy: i, *p, *q i *r.
Nie ma sztywnego limitu liczby wskaźników, które mogą przechowywać ten sam adres. Możesz pogłębiać łańcuch wskaźników tak bardzo, jak to konieczne. Zmień *p i *r, aby zobaczyć zmianę. Wszyscy patrzą na tę samą komórkę pamięci.
Dowolna liczba wskaźników może wskazywać na ten sam adres.
To zachowanie ma fundamentalne znaczenie dla działania wskaźników. To nie jest przypadek specjalny. Jest to zachowanie domyślne. Zrozumienie tego pomaga uniknąć nieporozumień podczas debugowania. Jeśli zobaczysz nieoczekiwane wartości, sprawdź, czy wiele wskaźników nie zmienia tej samej lokalizacji. To nie magia. To tylko wspomnienie.

























