top of page

Proqramlaşdırmada Array nədir? (Massivlər)



Array'in azərbaycanca tərcüməsi massiv deməkdir. Array'lər reference-type olduqlarına görə ram'ın heap sahəsində saxlanılır. Biz normalda 10, 20 dənə rəqəmi saxlamaq istəsək gərək 20 dənə dəyişəndə saxlayaq. Belə olan halda bir dezavantaj odur ki, hər hansısa bir yerdə bu rəqəmləri döngü daxilində istifadə edə bilmirik. Gərək bir-bir hamısını fərqli adıyla çağıraq. Array'da sadəcə rəqəm yox, istənilən tipdə data saxlaya bilirik. İndi bir array yaradıb şifahi izah edəcəm.


int[] numArray = new int[6]; //(Şəkildə: 1)

Burada int tipindən sonra index operatorlarıyla (dördbucaq mö'tərizələrlə), int tipində bir array olacağını bildirib və new keyword'uyla da array'ın instance'ını yaratdım. New keyword'u runtime'da bu array üçün RAM'ın heap sahəsində 6 ayrı dəyər tuta biləcəyi yer ayırır və reference adresini də stack sahəsində tutur. Mən nə zaman numArray'a müraciət etsəm, gedir stack sahəsindən reference adresiylə, heap sahəsində array'ın index'lərinin dəyərlərini alır.


numArray[0] = 100; //(Şəkildə: 2)

Burada isə, artıq mənim stack sahəmdə numArray'ım saxlanılır və dəyəri də heap sahəsindəki reference adresidir. numArray'ın sıfırıncı index'i bərabərdir 100 dediyim anda ilk öncə gedir stack sahədən numArray'ın dəyərlərinin heap sahədə dəyərlərinin saxlanıldığı adresi tapır. Sonra o adreslə

heap'dəki yerini tapır. Heap'də isə sıfırıncı index'ə artıq 100 rəqəmini verir.


int getVal = numArray[0]; //(Şəkildə: 3)

Hər hansı bir yerdə array'ın index'ini çağıran zaman da yenə gedir array'ın stack sahəsindən ilk öncə onun reference adresini tapır və reference adresiylə də heap sahədəki yerini tapıb onun 0-cı index'inin dəyəri olan 100 rəqəmini alır. Array yaratmağın fərqli yolları var.


//Nümunə 2:
int[] secondNumArray; //(stack'da yarandı)
secondNumArray = new int[6]; //(heap'də yaranıb ref adresi stack'ə köçürüldü)
//Nümunə 3:
int[] thirdNumArray = new int[6]
{
   1,
   2,
   3,
   4,
   5,
   6
};

Bu qayda da Array yaratdığım zaman yəni 6 elementinin olacağını bildirib bəzəkli mö'tərizələri açdığım anda mən ona məcbur 6 element set etməliyəm. Elementləri set edən zaman vergüllə ayırıram və nə az nə çox düz 6 dənə element set etməliyəm. Əgər mən bu Array'ın 7-ci index'ini set etməyə çalışsam o zaman "Index out of range" xətası alacam. Çünkü Array'ın 7-ci index'i yoxdur. Bu mövzuyla əlaqədar olaraq proqramlaşdırma kurslarına qatılan tələbələrin keçdiyi bəzi mövzuları araşdırmaq istəyənlər Matris Arrays, Jagged Arrays, Multidimensional Arrays və Array methods mövzularını da araşdıra bilərlər.

 

Proqramlaşdırma'ya yeni başlayırsınızsa və ya proqramlaşdırma kursları axtarırsınızsa, bizə müraciət edə bilərsiniz.

Recent Posts

See All
bottom of page