Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wskaźnik wskazujący na wskaźnik

Ostatnio zmodyfikowano 2015-01-16 13:12
Autor Wiadomość
wilkoo13
Temat założony przez niniejszego użytkownika
Wskaźnik wskazujący na wskaźnik
» 2015-01-15 21:42:27
Hej, mam problem ze wskaźnikami. Czy ten zapis:
C/C++
int b = 661;
int * ipb = & b;
int * ipipb = ipb;

różni się od tego:
C/C++
int b = 661;
int * ipb = & b;
int ** ipipb = & ipb;
?
Jeśli tak to czym i na czym polega wskaźnik na wskaźnik. Niech mi ktoś wytłumaczy różnice w tym kodzie.
P-125008
michal11
» 2015-01-15 22:20:21
Zastanów się co się stanie jeżeli zrobisz
* ipipb = val;
 dla twoich 2 przypadków.
P-125010
wilkoo13
Temat założony przez niniejszego użytkownika
» 2015-01-15 23:16:13
Wskazuje na adres val. Nadal nie rozumiem i proszę o wytłumaczenie mi tych kodów i czy jest między nimi jakaś znacząca różnica
P-125015
pekfos
» 2015-01-16 10:09:23
A czym jest T* dla T? Nie ma żadnej różnicy w działaniu wskaźników dla T będącego int, lub int*. Sam sobie usiłujesz utrudniać, dopatrując się w int** jakiejś innej, specjalnej składni.
P-125023
darko202
» 2015-01-16 13:12:18
terminologie znamy ale powtórzmy:
Wskaźnik (ang. pointer) - typ zmiennej odpowiedzialnej za przechowywanie adresu  innej zmiennej (miejsca w pamięci) w obrębie naszej aplikacji.
oznaczamy go <typ>* np. int*

* - operator wyłuskania wartości zmiennej, na którą wskazuje wskaźnik (wyciąga wartość ze wskaźnika)

& - operator pobrania adresu danej zmiennej, tablicy, struktury itp (pobiera adres zmiennej)


w przykładzie 1
C/C++
int b = 661; //( np. &b = 0x00CF14C)
int * ipb = & b; //(  ipb = 0x00CF14C), a np. &ipb = 0x00CF14D
int * ipipb = ipb; //
wskaźnikowi ipipb przypisujemy wartość wskaźnika (czyli np. ipipb=0x00CF14C)
czyli wskazuje adres b
wyłuskanie *ipipb daje wartość b

w przykładzie 2
C/C++
int b = 661; //( np. &b = 0x00CF14C)
int * ipb = & b; //( ipb = 0x00CF14C), a np. &ipb = 0x00CF14D
int ** ipipb = & ipb;
//wskaźnik ipipb zawiera adres wskaźnika ipb (czyli ipipb = 0x00CF14D)
czyli wskazuje adres ipb

wyłuskanie *ipipb daje adres b
a wyłuskanie **ipipb daje wartość b






 
P-125027
« 1 »
  Strona 1 z 1