6.25.Göstəricilər və onların təsviri Göstərici-proqramın obyekti yerləşdiyi sahənin ünvanıdır. Tutaq ki, proqramda üç dəyişən təsvir edilib:
int a=5; char c=`G`; float r=1.2E8; Tutaq ki, bu dəyişənlər kompyuterin yaddaçında aşağıdaki kimi yerləşiblər:
Yaddaş
FFC0
FFC1
FFC2
FFC3
FFC4
FFC5
FFC6
Dəyişənlər
a
c
r
Qiymətlər
5
G
1.2*10
&-əməli ünvan əməlidir. Dəyişənə bu əməli tətbiq etdikdə həmin dəyişənin yaddaşda ünvanını alarıq. Bu əməldən istinadları vermək üçün istifadə edilir. Yuxarıda göstərilmiş dəyişən üçün yaza bilərik: & a=FFC0, & c=FFC2, & r=FFC3. Ünvanları saxlamaq üçün göstərici tip dəyişənlərdən də istifadə edilir. Göstərici tip dəyişənlərin təsviri formatı aşağıdaki kimidir:
tip*dəyişənin adı;
Göstəricilərin təsvirinə aid misallar:
int*pti; char*ptc; float*ptf; Bu təsvirdən sonra pti dəyişənində tam tipli kəmiyyəti göstərən göstərici, ptc-dəyişənində simvol tipli kəmiyyətin, ptf-dəyişənində isə float tipli kəmiyyətin göstəriciləri yerləşir. Göstəricilərə ancaq onların təsvir olunduqları tiplərə aid olan dəyişənlərin ünvanlarını mənimsətmək olar. Aşağıdakilar mümkündür:
pti =&a; ptc=&c; ptf=&r; Nəticədə göstəricilər aşağıdaki qiymətləri alar:
pti=FFC0, ptc=FFC2, ptf=FFC3. Digər tiplər kimi göstəricilərə də təsvir zamanı qiymətlər vermək olar.
Məsələ, int a=5; int*pti=&a; char c=’G’; char*ptc=&c; float r=1.2E8; float*ptf=&r; Başlıq faylında NULL adlı göstərici də vardır ki, bu göstərici heç bir ünvan göstərmir.
Göstəricilərin təsvirində istifadə olunan *(ulduz) işarəsi ünvanlaşma əməlini bildirir. Onun və göstəricinin vasitəsi ilə uyğun dəyişənə müraciət etmək olar. Yuxarıda göstərilən təsvirdən sonra a və *pti, c və *ptc, f və *ptf dəyişənləri qarşılıqlı bir-birini əvəz edə bilərlər. Məsələ, aşağıdaki iki operator bir-biri ilə eynidir:
x=a+2; x=*pti+2; cout< -operatorunun yerinə yetirilməsi nəticəsində ekrana 55-verilər.