Wskaźniki w języku C++
7.1. Posługiwanie się typem wskaźnikowym w programowaniu
Cel ćwiczenia:
Umiejętność posługiwania się wskaźnikiem przy wywoływaniu obiektów
Budowanie własnych programów przy użyciu typu wskaźnikowego
Nowe zagadnienia:
adres obiektu (zmiennej)
wskaźnik do obiektu
inkrementacja / dekrementacja wskaźnika
Definicje nowych pojęć do przyswojenia:
Wskaźnik - obiekt, w którym zapisany jest adres do innego obiektu.
Składnia deklaracji użycia wskaźnika:
float *d;
Nazwa wskaźnika
Gwiazdka oznacza, że jest to wskaźnik
Typ obiektu wskazywanego przez wskaźnik
Składnia ustawienia wskaźnika na dany obiekt:
int z, *w; (1)
w = &z; (2)
(1) deklaracja obiektu o nazwie z (obiekt typu całkowitego - int) oraz wskaźnika do obiekty typu całkowitego o nazwie w,
(2) zapisanie do obiektu w (do wskaźnika) adresu obiektu z (&z - adres obiektu z)
Od tego momentu można odwoływać się do obiektu z na dwa sposoby:
(1) bezpośrednio, np.: z = z + 1;
(2) poprzez wskaźnik: *w = *w + 1;
Obie operacje dają ten sam rezultat (zwiększenie wartości zapisanej w obiekcie z o 1).
Napisz program zwiększający parametry a=1 i b=1 o stałe wartości (np. 100 i 10, odpowiednio). Zwiększenie wartości parametrów powinno odbywać się w oddzielnej funkcji wywoływanej ze wskaźnikami do parametrów a i b.
Kod źródłowy
#include <iostream.h>
#include <conio.h>
void zwiekszenie(int *wsk1, int *wsk2);
main()
{
int a = 1, b = 1, *wsk_a, *wsk_b;
cout<<"Przed zwiekszeniem wartosci a = "<<a<<" i b = "<<b<<endl;
wsk_a = &a;
wsk_b= &b;
zwiekszenie(wsk_a, wsk_b);
cout<<endl<<"Po zwiekszeniu wartosci a = "<<a<<" i b = "<<b<<endl;
getch();
return(0);
}
void zwiekszenie(int *wsk1, int *wsk2)
{
*wsk1 += 100;
*wsk2 += 10;
}
Zadania 7.1
Wskaźniki
Napisz program, który zapyta o dwie wartości liczbowe. Program ma za zadanie:
stworzyć wskaźniki do obiektów, gdzie zapisano podane wartości,
wyświetlić zawartość obiektów oraz ich adresy przy użyciu wskaźników.
Stwórz program zamieniający wartości dwóch zmiennych, wprowadzone z klawiatury. Zamianę wartości powinna wykonywać funkcja zamiana wywoływana z dwoma wskaźnikami do obiektów, gdzie przechowywane są wartości zmiennych.
Napisz program obliczający silnię dla liczby podanej z klawiatury. Obliczenia powinny być przeprowadzone w oddzielnej funkcji wywoływanej ze wskaźnikiem.
Napisz program, w którym do kolejnych elementów tablicy jednowymiarowej będą wpisywane kolejne wartości potęgi liczby 2 (tzn. element [0] = 20, element [1] = 21 itd.). Liczbę elementów tablicy należy wprowadzić z klawiatury. Do zapisania elementów w tablicy użyj funkcji wywoływanej ze wskaźnikiem.
Napisz program realizujący mnożenie jednowymiarowej tablicy o dziewięciu elementach przez dowolną liczbę. Do mnożenia użyj funkcji wywoływanej ze wskaźnikiem do tablicy.
Stwórz program służący do odwracania kolejności znaków w dowolnym stringu. Użyj wskaźników.
Ćwiczenia laboratoryjne nr 7.1
„Język Programowania” str. 3
3
Ćwiczenia laboratoryjne
„Język programowania” nr 7.1
2
Przed zwiększeniem
a= 1 b = 1
Po zwiększeniu
a= 101 b = 11
START
STOP
a = 1 b = 1
wsk_a = &a
wsk_b = &b
ZWIĘKSZENIE
Zwiększenie wartości a i b