24 – DARS. HOTIRA SINFLARI.
Ob'ektlarni lokallashtirish.
Blok deb funktsiya tanasi eki figurali qavslar ichiga olingan ta'riflar va operatorlar ketma ketlishgiga aytiladi.
Avtomatik hotira ob'ektlari faqat o’zi aniqlangan blok ichida mavjud bo’ladi. Blokdan chiqishda ob'ektlar uchun ajratilgan hotira qismi bo’shatiladi, ya'ni ob'ektlar yuqoladi. Shunday qilib avtomatik hotira har doim ichki hotiradir, ya'ni bu hotiraga o’zi aniqlangan blokda murojaat qilish mumkin. Avtomatik hotira ob'ektlari auto yoki register so’zlari yordamida ta'riflanadi. Agar mahsus ko’rsatilmagan bo’lsa o’zgaruvchi har doim avtomatik hotira turiga tegiishli deb hisoblanadi. Statik hotira ob'ektlari blokdan chiqilgandan so’ng ham mavjud bo’lib qolaveradi. Statik hotira ob'ektlari statik hizmatchi so’zi yordamida ta'riflanadi.
Misol:
#Include
void autofunc(void)
{ int K=1;
Cout<<(“\K=%d”,K);
K++;
Return;
}
void main()
{
int i;
for (i=0;i<5;i++)
autofunc();
}
Bu dastur bajarilishi natijasi:
K=1 K=1 K=1 K=1 K=1
Shu dasturning ikkinchi ko’rinishida K o’zgaruvchi statik o’zgaruvchi sifatida ta'riflanadi:
#Include
void autofunc(void)
{ static int K=1;
Cout<<(“\K=%d”,K);
K++;
Return;
}
void main()
{
int i;
for (i=0;i<5;i++)
autofunc();
}
Bu dastur bajarilishi natijasi:
K=1 K=2 K=3 K=4 K=5
Bu misolda K o’zgaruvchi faqat bir marta initsializatsiya qilinadi va uning qiymati navbatdagi murojaatgacha saqlanadi.
Dostları ilə paylaş: |