Функциялар


Ko’rinish sohasi. Lokal va global o’zgaruvchilar



Download 227 Kb.
bet5/18
Sana09.07.2021
Hajmi227 Kb.
#113859
1   2   3   4   5   6   7   8   9   ...   18
Bog'liq
C Funksiyalar

Ko’rinish sohasi. Lokal va global o’zgaruvchilar

O’zgaruvchilar funktsiyatanasi ichida yoki undan boshqalarida e’lon qilinishi mumkin. Funktsiya ichida e’lon qilingan o’zgaruvchilarga lokal o’zgaruvchilar deyiladi. Bunday o’zgaruvchilar programma stekida joylashadi va faqat o’zi e’lon qilingan funktsiya tanasida amal qiladi. Boshqaruv asosiy funktsiyaga qaytishi bilan lokal o’zgaruvchilar uchun ajratilgan xotira bo’shatiladi.

Har bir o’zgaruvchi amal qilish sohasi va yashash vaqti xususiyati bilan xarakterlanadi.

O’zgaruvchi amal qilish sohasi deganda o’zgaruvchini ishlatish mumkin bo’lgan programma sohasi (qnomi) tushuniladi. Bu tushuncha bilan o’zgaruvchining ko’rinish soxasi uzviy bog’langan. O’zgaruvchi amal qilish sohasidan chiqqanda ko’rinmay qoladi. Ikkinchi tomondan, o’zgaruvchi amal qilish soxasida bo’lishi, lekin ko’rinmas bo’lishi mumkin. Oxirgi holda ko’rishga ruxsat beruvchi amallar yordamida ko’rinmas o’zgaruvchiga murojat qilish mumkin bo’ladi.

O’zgaruvchining yashash vaqti deb u mavjud bo’lgan programma bajarish intervaliga aytiladi.

Lokal o’zgaruvchilar o’zlari e’lon qilgan funktsiya yoki blok chegarasida ko’rinish sohasiga ega. Blok ichidagi ichki bloklarda xuddi shu nomdagi o’zgaruvchi e’lon qilingan bo’lsa, ichki bloklarda lokal o’zgaruvchi amal qilmay qoladi. Lokal o’zgaruvchi yashash vaqti blok yoki funktsiyani bajarish vaqti bilan aniqlanadi. Bu hol shuni anglatadiki, turli funktsiyalarda bir xil nomdagi, lekin bir-biriga umuman bog’liq bo’lmagan lokal o’zgoruvchilarni ishlatish mumkin.

Quyidagi programmada main( ) va sum( ) funktsiyalarda bir xil nomdagi o’zgaruvchilarni ishlatish ko’rsatilgan. Programmada ikkita sonning yig’indisi hisoblanadi va chop etiladi:

# include

// funktsiya prototipi

// int sum(int a; int b);

int main( )

{

// lokal o’zgaruvchilar



int x = r;

int y=4;


cout <return 0;

}

int Sum(int a, int b)



{

// lokal o’zgaruvchi

int x=a+b;

return x;

}

Global o’zgaruvchilar har qanday funktsiyalardan tashqarida e’lon qilinadi va programma bajarilishining oxirigacha amal qiladi. Bunday o’zgaruvchilarga programmadan ihtiyoriy funktsiyalardan murojat qilish mumkin. Funktsiya ichidan global o’zgaruviga murojat qilish uchun funktsiyada uning nomi bilan mos tushadigan lokal o’zgaruvchilar bo’lmasligi kerak. Agar global o’zgaruvchi e’lonida unga boshlang’ich qiymat berilmagan bo’lsa, ularning qiymati 0 hisoblanadi. Global o’zgaruvchining amal qilish sohasi uning ko’rinish sohasi bilan ustma-ust tushadi.



Chuni qayd qilish kerakki, programma tuzuvchilar imkon qadar global o’zgaruvchilarni ishlatmaslikka harakat qiladi, chunki bunday o’zgaruvchilar qiymatini programmaning ixtiyoriy joyidan o’zgartirish imkoniyati mavjud va bu holat programmaning ishlashida mazmuniy xatolarga olib kelishi mumkin. Bu fikrimizni tasdiqlovchi programmani ko’raylik.

# include

// global o’zgaruvchi e’loni

int test = 100;

void Chop_qilish(void );

int main( )

{

//lokal o’zgaruvchi e’loni



int test =10;

//global o’zgaruvchi chop qilish funktsiyasini chaqirish

Chop_qilish( );

sout << “Lokal o’zgaruvchi: ” << test<< ‘\n’;

return 0;

}

void Chop_qilish(void)



{

cout << “Global o’zgaruvchi: ”<

}

Boshda test global o’zgaruvchi 100 qiymati bilan e’lon qilinadi. Keyinchalik, main( ) funktsiyasida test nomi bilan lokal o’zgaruvchisi 10 qiymati bilan e’lon qilinadi. Programmada, Chop_qilish( ) funktsiyasiga murojaat qilinganida, asosiy funktsiya tanasidan vaqtincha chiqiladi va yerda e’lon qilingan barcha lokal o’zgaruvchilarga murojaat qilish mumkin bo’lmaydi va Chop_qilish( ) funktsiyasida global o’zgaruvchi test qiymati chop etiladi. Asosiy programmaga qaytgandan keyin, lokal test o’zgaruvchisi global test o’zgaruvchisini “berkitadi” va “cout <<” qurilmasi bilan lokal test o’zgaruvchini qiymati chop etiladi. Programma ishlashi natijasida ekranga quyidagi natijalar chop etiladi:



Global o’zgaruvchi: 100

Lokal o’zgaruvchi: 10




Download 227 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish