Witam ponownie. W tym wykładzie chcę zademonstrować
lub rozwiązać nasze poprzednie wyzwanie, które zapoznało Cię
ze składnią wskaźnika, koncepcją wskaźnika, przypisaniem
adresu do wskaźnika, a następnie wyświetleniem wyników dla wskaźnika.
Przywołajmy więc bloki kodu i utworzymy nowy projekt, nowy projekt w
języku c, który będzie nazywany po prostu podstawami wskaźników, ponieważ zajmie się podstawami wskaźników.
Więc wiemy, jak to wszystko zrobić. Zamierzamy wybrać aplikację konsolową, upewnij
się, że mamy c i po prostu wywołaj
podstawy wskaźnika.
Ta koncepcja wskaźnika jest naprawdę, bardzo ważna.
Więc zaczynamy powoli i dalej.
Więc zaczynamy. Tutaj mamy nasze główne.
Teraz wszystko, co chcemy zrobić, to utworzyć jedną zmienną
całkowitą, a następnie jedną zmienną wskaźnikową.
Chcemy zainicjować oba.
Więc pierwszą rzeczą, którą zamierzam zrobić, jest utworzenie zmiennej
całkowitej i nadam jej nazwę numer lub numer.
I zainicjalizuję to na 150.
Aby utworzyć zmienną wskaźnikową, musi być tego samego typu.
Aby utworzyć wskaźnik, wystarczy wpisać typ danych, a następnie gwiazdkę w
deklaracji, a następnie nazwiemy to pnum jako numer wskaźnika.
Zwykle chcesz rozpocząć zmienne, które są wskaźnikami, od przedrostka p.
I dobrze jest zawsze, gdy tworzysz swoje wskaźniki, inicjalizować je na null.
Null to specjalne słowo kluczowe, które mówi, że
wskaźnik na nic nie wskazuje.
Po zainicjowaniu obu
naszych zmiennych, naszej liczby całkowitej i wskaźnika liczby całkowitej,
chcemy przypisać coś do naszego wskaźnika.
Ponieważ w tej chwili nasz wskaźnik nie wskazuje niczego w pamięci.
I chcesz mieć pewność, że cokolwiek przypiszesz
temu wskaźnikowi, faktycznie ma miejsce w
pamięci, przydzieloną pamięć.
Więc w tym przypadku, jeśli przypiszemy mu num, num
jest liczbą całkowitą w wierszu 6, która ma przydzieloną pamięć.
C automatycznie przydzieli pamięć dla każdej
deklaracji zmiennej.
Nawet ten wskaźnik w linii 7 ma przydzieloną pamięć tylko do przechowywania wskaźnika.
Niekoniecznie oznacza to, że ma przydzieloną pamięć na to, na co wskazuje.
Aby więc podpisać pnum, wartość
adresu, wystarczy powiedzieć, że pnum równa się
ampersand, czyli adresowi operatora
i chcemy
mu przypisać adres num.
Num ma już przydzieloną pamięć i zadeklarowaliśmy to.
Więc linia 9 po prostu przypisuje adres num do wskaźnika.
To takie proste.
Teraz, kiedy tworzysz wskaźnik i przypisujesz
mu adres, możesz również utworzyć własną pamięć dynamiczną i
przypisać ją. Ale to dla innego ćwiczenia. W tym
przypadku mamy już utworzoną zmienną. Wskażemy wartość tej zmiennej.
Musimy przypisać adres num.
Teraz, po wydrukowaniu, wykonaliśmy nasze zadania, zainicjowaliśmy wszystko.
Teraz chcemy tylko wydrukować trochę informacji.
Więc użyjemy printf i powiem tylko, że najpierw
chcę wypisać wartość adresu pnum.
Teraz jaka jest wartość pnum dla adresu,
ale adres pnum. I tutaj możemy właściwie
powiedzieć adres
wskaźnika, więc powiemy p. A potem wszystko, co musimy zrobić,
to wstawić tutaj, musimy wstawić adres naszego wskaźnika.
Więc tutaj powiedzielibyśmy adres pnum.
A co nam to da, to da nam adres wskaźnika,
który przydzielał pamięć. To
nie jest wartość wskaźnika. Wartością wskaźnika będzie również adres, będzie to adres num.
Więc tutaj wypiszmy najpierw również num. Więc
tutaj po prostu wypiszemy num adres to.
I znowu chcemy wydrukować adres, powiedzmy procent p.
A potem powiemy adres
adresu num.
Adres num powinien również odpowiadać wartości pnum.
Adres pnum będzie inny, ponieważ jest to wskaźnik w pamięci.
Więc wypiszemy wartość pnum lub
powinienem powiedzieć adres pnum.
Następnie
wydrukujemy również wartość pnum.
zmienna i to będzie również adres, a to będzie
po prostu pnum.
Ostatnią rzeczą, którą chcemy
wyświetlić, jest wyświetlenie wartości wskazywanej przez pnum.
Więc wartość tego, na co wskazuje pnum.
I faktycznie będzie to typ, na który wskazuje,
jest liczbą całkowitą. Więc to będzie procent d.
Dodajmy teraz kilka nowych wierszy, abyśmy mogli to przeczytać.
A to, co w rzeczywistości wskazuje na sposób, w jaki otrzymujesz tę wartość, to operator pośredni.
Więc robisz gwiazdkę, a następnie nazwę wskaźnika.
A to powie ci, na jaką wartość wskazuje, która powinna wynosić 150.
Aby powtórzyć w linii
11., wypisujemy adres num.
To będzie jakaś liczba lub liczba szesnastkowa.
Następnie w linii 12. wypisujemy adres pnum,
który został właśnie przydzielony w
linii siódmej, ponieważ musisz gdzieś przechowywać wskaźnik pnum.
Następnie wypisujemy wartość wskaźnika, który jest po prostu adresem num.
A kiedy wypisujemy adres pnum, musimy użyć znaku ampersand.
A następnie wypisujemy wartość tego, na co
wskazuje pnum, co jest dereferencją za pomocą operatora pośredniego.
Więc teraz przejdźmy dalej, zbudujmy
to i uruchommy, a powinniśmy zobaczyć wszystkie te wartości.
Więc adres
num tylko tej liczby w pamięci to 0060FF0C.
Adres pnum będzie
inny, 0060FF08.
Wartość pnum będąca adresem num powinna pasować do pierwszej linii i
robi to FFOC.
A następnie wartość tego, na co wskazuje pnum, wynosi 150.
Tak więc wskaźnik naprawdę może mieć trzy wartości. Jego adres, wartość
wskaźnika, który jest innym adresem, a
następnie wartość tego, na co wskazuje ten adres.
I znowu, ampersand zawsze podaje adres
w pamięci.
Pnum zawiera adres. Możesz to
wydrukować, wypowiadając nazwę wskaźnika.
A następnie, aby uzyskać wartość, na którą wskazuje, użyj operatora pośredniego,
gwiazdki, a to da ci wartość, która wynosi 150.
To są podstawy wskaźników, pozwalające zapoznać się ze składnią.
Kiedy używać adresu operatora, a kiedy operatora
pośredniego, a następnie próbować wyjaśnić tylko tę koncepcję wskaźnika i sposób, w
jaki wskaźnik zawiera wartość adresu, wartością wskaźnika jest adres.
Więc pobaw się tym,
zrozum tę składnię, wskaźniki są naprawdę ważną koncepcją. Dziękuję Ci.