Wskaźnik wskazujący na wskaźnik
Ostatnio zmodyfikowano 2015-01-16 13:12
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: int b = 661; int * ipb = & b; int * ipipb = ipb;
różni się od tego: 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. |
|
michal11 |
» 2015-01-15 22:20:21 Zastanów się co się stanie jeżeli zrobisz * ipipb = val; dla twoich 2 przypadków. |
|
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 |
|
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. |
|
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 int b = 661; int * ipb = & b; 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 int b = 661; int * ipb = & b; 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 |
|
« 1 » |