Tayanch iboralar: Berilganlar massivi tushunchasi, ko‘p o‘lchamli
statik massivlar, ko‘p o‘lchamli massivlarni initsializatsiyalash,
matrtsa,indeks,xotira,dinamik massivlar , funksiya,massivlar.
C++ da o‘zgaruvchilar yo statik - kompilyatsiya paytida, yo standart
kutubxonadan funksiyalarni chaqirish yo‘li bilan dinamik - dasturning
bajarilish paytida, joylanishi mumkin. Bu usullarni ishlatishning asosiy
farqi ularning effektivligida va moslanuvchanligidadir. Statik joylashtirish
birmuncha effektivroq,chunki xotira ajratish dastur bajarilishidan oldin
bajariladi. Ammo uning moslanuvchanligi ancha pastroq, chunki bu holda
biz joylashtiriladigan ob’yektlarning turlari va o‘lchamlarini oldindan
bilishimiz zarur.Masalan, matn fayllarni qatorlarning statik massivida,
uning o‘lchamini oldindan bilish zarurligidan, joylashtirish ancha qiyin.
Ayniqsa, oldindan noaniq sonli elementlarni saqlash va qayta ishlash
bilan bog‘liq masalalar uchun xotirani dinamik taqsimlash usulidan
foydalanish qulay.
Xotirani statik va dinamik taqsimlash o‘rtasidagi asosiy farq quyidagilar:
Statik ob’yektlar nomlangan o‘zgaruvchilar bilan belgilanadi. Shu
sababli bunday ob’yektlar ustida amallar bevosita ularning nomlarini
ishlatish orqali amalga oshiriladi. Dinamik ob’yektlar shaxsiy nomga ega
bo‘lmaydi, ular ustidagi amallar bilvosita, ya’ni ko‘rsatkichlar yordamida
bajariladi;
Statik ob’yektlar uchun xotira ajratish va bo‘shatish kompilyator
tomonidan avtomatik ravishda bajariladi. Dasturchining bu haqda bosh
qotirishi shart emas.Dinamik ob’yektlar uchun xotira ajratish va
bo‘shatish butunligicha dasturchining zimmasiga tushadi. Bu esa hal
qilishda
xatoga
yo‘l
qo‘yish
mumkin
bo‘lgan
murakkab
masaladir.Dinamik ajratilgan xotira bilan ish ko‘rish uchun new va delete
buyruqlaridan foydalaniladi.Shu paytgacha barcha misollarda xotirani
statik ajratish usulidan
foydalanilib kelindi. Masalan, i o‘zgaruvchini aniqlash quyidagicha
bajarilar edi:
int i = 1024;
Bu buyruq xotirada int turidagi o‘zgaruvchini saqlash uchun zarur bo‘lgan
soha ajratadi, bu sohani I nom bilan bog‘laydi va u joyga 1024 qiymatni
yozib qo‘yadi. Bularning barchasi dasturning bajarilishigacha bo‘gan
kompilyatsiya paytida bajariladi.O‘zgaruvchi uchun joy ajratishning yana
bir usuli mavjud bo‘lib, u new buyrug‘ini ishlatish yordamida
bajariladi.newbuyrug‘i ikkita shaklga egabo‘ladi. Birinchi shaklda aniq
turli birlik ob’yekt uchun joy ajratadi:
Dostları ilə paylaş: |