Göstərici və Array
Göstərici yaddaş məkanına istinadı saxlayan məlumat növüdür (yəni göstərici dəyişəni bəzi məlumatların saxlandığı yaddaş yerinin ünvanını saxlayır). Massivlər elementlər toplusunu saxlamaq üçün ən çox istifadə edilən məlumat strukturudur. Əksər proqramlaşdırma dilləri massivləri asanlıqla elan etmək və massivlərdəki elementlərə daxil olmaq üçün üsullar təqdim edir.
Göstərici nədir?
Göstərici bəzi məlumatların saxlandığı yaddaş yerinin ünvanını saxlayan məlumat növüdür. Başqa sözlə, göstərici yaddaş yerinə istinad edir. Göstərici tərəfindən istinad edilən yaddaş yerində saxlanılan məlumatlara daxil olmaq referensiya adlanır. Ağacların/sətirlərin keçməsi, cədvəl axtarışları və s. kimi təkrarlanan əməliyyatları yerinə yetirərkən göstəricilərdən istifadə performansı yaxşılaşdıracaq. Bunun səbəbi, göstəricilərin istinaddan çıxarılması və surətinin çıxarılması göstəricilərin göstərdiyi məlumatların surətini çıxarmaqdan və onlara daxil olmaqdan daha ucuzdur. Null göstərici heç nəyə işarə etməyən göstəricidir. Java-da null göstəriciyə daxil olmaq NullPointerException adlı istisna yaradar.
Masiv nədir?
Şəkil 1-də göstərilmişdir, adətən massivə dəyərləri elan etmək və təyin etmək üçün istifadə olunan kod parçasıdır. Şəkil 2 massivin yaddaşda necə görünəcəyini təsvir edir.
int dəyərlər[5]; dəyərlər[0]=100; dəyərlər[1]=101; dəyərlər[2]=102; dəyərlər[3]=103; dəyərlər[4]=104; |
Şəkil 1: Massiv üçün qiymətlərin elan edilməsi və təyin edilməsi üçün kod
100 | 101 | 102 | 103 | 104 |
İndeks: 0 | 1 | 2 | 3 | 4 |
Şəkil 2: Yaddaşda saxlanılan massiv
Yuxarıdakı kod 5 tam ədəd saxlaya bilən massivi müəyyən edir və onlara 0-dan 4-ə qədər olan indekslərdən istifadə etməklə daxil olur. Massivin mühüm xassələrindən biri odur ki, bütün massiv tək yaddaş bloku kimi ayrılır və hər bir element öz dəyərini alır. massivdə öz sahəsi. Massiv müəyyən edildikdən sonra onun ölçüsü müəyyən edilir. Beləliklə, kompilyasiya zamanı massivin ölçüsünə əmin deyilsinizsə, təhlükəsiz tərəfdə olmaq üçün kifayət qədər böyük bir massiv təyin etməli olacaqsınız. Ancaq çox vaxt, biz ayırdığımızdan daha az sayda elementdən istifadə edəcəyik. Beləliklə, əhəmiyyətli miqdarda yaddaş əslində boşa çıxır. Digər tərəfdən, əgər “kifayət qədər böyük massiv” əslində kifayət qədər böyük deyilsə, proqram çökəcək.
Göstəricilər və Massivlər arasında fərq nədir?
Göstərici bəzi məlumatların saxlandığı yaddaş yerinin ünvanını saxlayan məlumat növüdür, Massivlər isə elementlər toplusunu saxlamaq üçün ən çox istifadə edilən məlumat strukturudur. C proqramlaşdırma dilində massivlərin indeksləşdirilməsi göstərici arifmetikasından istifadə etməklə həyata keçirilir (yəni x massivinin i-ci elementi (x+i)-ə ekvivalent olacaq). Buna görə də C-də ardıcıl olan yaddaş yerləri dəstinə işarə edən göstəricilər toplusu massiv kimi düşünülə bilər. Bundan əlavə, sizeof operatorunun göstəricilər və massivlərdə necə işləməsində fərq var. Massiləyə tətbiq edildikdə sizeof operatoru massivin bütün ölçüsünü qaytaracaq, göstəriciyə tətbiq edildikdə isə sadəcə göstəricinin ölçüsünü qaytaracaq.