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



Teraz jest 30 lis 2024, o 08:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 22 mar 2016, o 15:16 
Offline
Użytkownik

Dołączył(a): 09 cze 2013
Posty: 34
Pomógł: 0

Witam,

Mam pewien problem ze zrozumieniem zapisu int **b.
Jak ze zrozumieniem pojedynczego wskaźnika nie mam problemu int *b :
b - to adres gdzieś w pamięci
*b - to wartość na jaką ten adres wskazuje,
To zapis **b nie jest dla mnie do końca jasny.
np. napisałem sobie dla zrozumienia tematu funkcję która ma przypisać jakiś adres do wskaźnika, który jest na początku NULL:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


printy wyświetlają :

adress w funkcji to 0x7ffd61cb0b80
adress w funkcji to 0x8000000
adress poza funkcją to 0x8000000

Moje pytanie, czy dobrze rozumiem poszczególne zapisy:
b - adres komórki pamięci która przechowuje adres 0x08000000
*b - nasz adres 0x08000000
czym w takim razie jest zapis **b - ?
Czy **b jest to zapis tylko na potrzeby deklaracji ?

Proszę o wytłumaczenie mi tego, wprawdzie powyższa funkcja działa tak jak chciałem ale czuję, że nie do końca rozumiem temat z wieloma gwiazdkami. Już nie wspomnę o zapisie ***b ;)

Z góry dzięki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2016, o 15:49 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Wskaźnik, to zmienna prawie jak każda inna, tylko wartością przechowywaną jest adres w pamięci, ale to już wiesz.

Zatem wskaźnik na wskaźnik (**b) to nic innego jak przechowywanie adresu zmiennej wskaźnikowej, działa to analogicznie jak normalny wskaźnik na zwykłą zmienną :)

Czasem się tego używa gdy potrzebujesz np. adres wskazujący na tablicę, która jak wiadomo również jest zestawem wskaźników.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 mar 2016, o 07:58 
Offline
Użytkownik

Dołączył(a): 09 cze 2013
Posty: 34
Pomógł: 0

Dzięki, teraz jest to dla zrozumiałe :)



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: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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