background image

Podstawy programownia – laboratorium 

   

Katedra Podstaw Informatyki 

 

 mgr inż. Barbara Fryc 

  

 

Laboratorium nr 5 

Wskaźniki w C++ 

 

 
Wskaźnikiem  jest  zmienna  przechowująca  adres  pamięci.  Zależnie  od  architektury 

komputera, rozmiar wskaźnika wynosi 2, 4 lub więcej bajtów tyle co rozmiar danego typu, na 
który pokazuje wskaźnik. 

P

RZYKŁAD 

1:

 

W

SKAŹNIK I ZMIENNA

 

int *w;  

//definicja wskaźnika do pokazywania na obiekt (zmienną) typu int 

int k = 3; 
w=&k; 

 

//ustawienie wskaźnika na obiekt (zmienną)k 

cout<<”W zmiennej pokazywanej przez wskaźnik jest wartość”; 
cout<< (*w); 
 

Z

ADANIA

 

Zadanie 1.1  Ustawić wartość k dla zmiennej z przykładu 1 na 10. Wyświetlić wartość k i 
wartość wskaźnika. Czy zmieniła się wartość wskaźnika? Odpowiedź uzasadnić. 

 

Zadanie 1.2  Jaka jest różnica, pomiędzy wyświetlonymi wartościami? 

cout<<(*w); 
cout<<(w); 

Odpowiedź uzasadnić. 

 

RZYKŁAD 

2:

 

W

SKAŹNIK I 

T

ABLICA

 

int *w;  

 

//definicja wskaźnika do pokazywania na obiekt (zmienną) typu int 

int tab[10]; 
w=&tab[0]; 

 

//ustawienie wskaźnika na pierwszy element tablicy 

 
// w=tab; 

 

//ustawienie wskaźnika na pierwszy element tablicy 

//w=&tab[5];   

//ustawienie wskaźnika na piąty element tablicy 

 
w = w+1; 

 

 

//przesunięcie wskaźnika na kolejny element tablicy 

Z

ADANIA

 

Zadanie 2.1  Wskazać  i poprawić błędy w poniższym fragmencie programu: 
…. 

 

float *rPtr; 
long *intPtr;  

intPtr = rPtr; 

 

 

 

int *x,y; 

 

x = y; 

 

 

 

float x = 19.34; 

 

float xPtr = &x; 

 

cout << xPtr <<endl; 

….. 
 

 

 

background image

Podstawy programownia – laboratorium 

   

Katedra Podstaw Informatyki 

 

 mgr inż. Barbara Fryc 

  

 

Zadanie 2.2  Jakie zadanie realizuje poniższa definicja funkcji: 
int cos_robi(char *s) 

int x=0; 

  for(; *s != '\0'; s++) ++x; 
 
  return x; 
 

 

RZYKŁAD 

3:

 

D

YNAMICZNA REZERWACJA OBSZARÓW PAMIĘCI

 

int *w, *tab;   

//definicja  wskaźnika  do  pokazywania  na  obiekt  (zmienną)  typu 

int 
w = new int(15); //wpisanie wartości 15 dla obiektu pokazującego przez wskaźnik 
tab = new int[15]; //rezerwacja miejsca dla 15-sto elementowej tablicy typu int 

 
 

delete w; 
delete []tab; 

Z

ADANIA

 

Zadanie 3.1  Napisać program, w którym przydzielana jest dynamicznie pamięć, dla zmiennej 
typu float, inicjowanej wartością 3.0 oraz dla 15 elementowej  tablicy  również typu float. 
Następnie wpisać do utworzonej tablicy wartości zmiennej utworzonej w sposób dynamiczny. 
 

Zadanie  3.2    Napisać  program,  w  którym  tworzone  są  dynamicznie  dwie  tablice  znakowe. 
Jedna  z  tablic  powinna  być  zainicjowana  nazwiskiem  osoby  piszącej  program.  Następnie 
przekopiować do pustej tablicy zawartość tablicy zainicjowanej.