16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

przypisuje wskaźnikowi px adres zmiennej x. Mówimy, że:<br />

px wskazuje na zmienną x lub<br />

px jest WSKAŹNIKIEM (pointerem) do zmiennej x.<br />

Jednoargumentowy operator * (naz. OPERATOREM WYŁUSKANIA)<br />

powoduje, że zmienna "potraktowana" tym operatorem jest<br />

traktowana jako adres pewnego obiektu. Zatem, jeśli przyjmiemy,<br />

że y jest zmienną typu int, to działania:<br />

y = x;<br />

oraz<br />

px = &x;<br />

y = *px;<br />

będą mieć identyczny skutek. Zapis y = x oznacza:<br />

"Nadaj zmiennej y dotychczasową wartość zmiennej x";<br />

a zapis y=*px oznacza:<br />

"Nadaj zmiennej y dotychczasową wartość zmiennej, której adres w<br />

pamięci wskazuje wskaźnik px" (czyli właśnie x !).<br />

Wskaźniki także wymagają deklaracji. Poprawna deklaracja w<br />

opisanym powyżej przypadku powinna wyglądać tak:<br />

int x,y;<br />

int *px;<br />

main()<br />

......<br />

Zapis int *px; oznacza:<br />

"px jest wskaźnikiem i będzie wskazywać na liczby typu int".<br />

Wskaźniki do zmiennych mogą zamiast zmiennych pojawiać się w<br />

wyrażeniach po PRAWEJ STRONIE, np. zapisy:<br />

int X,Y;<br />

int *pX;<br />

...<br />

pX = &X;<br />

.......<br />

Y = *pX + 1; €€€€€€/* to samo, co Y = X + 1 */<br />

printf("%d", *pX);€€€€€€€/* to samo, co printf("%d", X); */<br />

Y = sqrt(*pX);€€€€€€€€€€€/* pierwiastek kwadrat. z X */<br />

......<br />

są w języku <strong>C++</strong> poprawne.<br />

Zwróć uwagę, że operatory & i * mają wyższy priorytet niż<br />

operatory arytmetyczne, dzięki czemu<br />

* najpierw następuje pobranie spod wskazanego przez<br />

wskaźnik adresu zmiennej;<br />

- 107-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!