38994

38994



117


GDY ARGUMENT JEST WSKAŹNIKIEM...

St.łjcl do trzeciej wartości można się dostać tak (komórki w tablicy numeruje się od zera):

zaienna ■ tab[2];

albo wykorzystując metodę wskaźnikową: zmienna ■ *(tab ♦ 2);

Z definicji obie te metody są równoważne.

Z definicji (z wyjątkiem użycia operatora sizeof) wartością zmiennej lub wyrażenia typu tablicowego jest wskaźnik na jej pierwszy element (tab == fttabO).

Co więcej, można |>ójść w druga stronę i potraktować wskaźnik jak tablicę:

int ‘wskaźnik;

wskaźnik ■ &tab(l]; /• lub wskaźnik ■ tab + 1; */ zaienna ■ wskaźnik(1); /• przypiszo 300 •/

Jako ciekawostkę podamy, iż w języku C można odnosić się do elementów tablicy jeszcze w inny sposób:

printf ("Xd\n", l[tab]);

Skąd ta dziwna notacja? Uzasadnienie jest proste:

tab[l] = *(tab ♦ 1) = *(1 ♦ tab) = 1[tab]

Podobną składnię stosuje m.in. asembler GNU.

Gdy argument jest wskaźnikiem...

Czasami zdarza się, że argumentem (lub argumentami) funkcji są wskaźniki. W przypadku “normalnych” zmiennych nasza funkcja działa tylko na lokalnych kopiach tychże argumentów, natomiast nie zmienia zmiennych, które zostały podane jako argument. Natomiast w przypadku wskaźnika, każda operacja na wartości wskazywanej powoduje zmianę wartości zmiennej zewnętrznej. Spróbujmy roz|>atr/eć poniższy przykład:

Sinclude <stdio.h>

void func (int ‘zmienna)

{

•zmienna - 5;

>

int main ()

{

int z*3;

printf ("z-y.d\n", z); /• wypisze 3 */ func(tz);

printf ("z=Xd\n", z); /• wypisze 5 */

>

Widzimy, że funkcje w języku C nie tylko potrafią zwracać określoną wartość, lecz także zmieniać dane, podane im jako argumenty. Ten sposób przekazywania argumentów do funkcji jest nazywany przekazywaniem przez wskaźnik (w przeciwieństwie do normalnego przekazywania przez wartość).



Wyszukiwarka

Podobne podstrony:
page0140 130 a gdy wykonana jest niedokładnie, może dojść do złudzenia. A więc złudzenia myśli są ta
skanuj0006 (166) ku podnoszenia się (gdy ćwiczenie jest najtrudniejsze), .1 prostuje ręce do pozycji
Slajd18 (miopia) Myopia występuje wtedy, gdy oko jest zbyt długie w stosunku do krzywizny rogówki. Ś
Slajd17 (hyperopia, hypermetropia) Występuje wtedy, gdy oko jest zbyt krótkie w stosunku do krzywizn
21037 Zdjęcie1297 (4) Rodzaje osadów 1 Osadtrzeciego-stopnia j W przypadku gdy wykorzystywany jest o
Test
62589 Slajd2 (117) 1. Wrażliwość estetyczna Jest to rzecz trudna do zdefiniowania. Estetyka jest nau
Magazyn68301 275 BANKI nych terminach, gdy potrzebna jest większa ilość gotówki do wypłaty (koni
Obraz5 (53) przy czym ciemiączko tylne jest bardziej obniżone w stosunku do ciemiączka przedniego i
Strona 2 z 7 System EAN Wykorzystywany jest on przede wszystkim do identyfikacji towarów znajdującyc
Zdjecie1092 jest ze zbiornika i tłoczona do zespołu roboczego składającego się z jednego łub kilku s
DIGDRUK00106519 djvu 11 A gdy go przeznaczenia niepozbędne siły Z tronu do grobu ojców przenieść si

więcej podobnych podstron