Globalo`zgaruvchilar.main() funksiyasida aniqlangan o`zgaruvchilar dasturdagi barcha funksiyalar uchun murojaat qilishga imkonli va ko`rinish sohasiga ega hisoblanadi. Bunday o`zgaruvchilar dasturdagi funksiyalar uchun global o`zgaruvchilar deyiladi.
Global o`zgaruvchi nomi bilan funksiya ichida nomlari ustma-ust tushadigan lokal o`zgaruvchilar faqatgina joriy funksiyaning ichidagina global o`zgaruvchining qiymatini o`zgartiradi. Lekin global o`zgaruvchi funksiya o`z ishini tugatgach u chaqirilishidan oldingi qiymatini saqlab qoladi, ya`ni funksiya tanasida e`lon qilingan lokal o`zgaruvchi funksiyaning ichida global o`zgaruvchini yashiradi xolos. Bunda lokal o`zgaruvchi alohida hosil qilinadi va funksiya ishlash vaqtida global va lokal o`zgaruvchilarning nomlari bir xil bo`lsa faqatgina lokal o`zgaruvchi ustida amallar bajariladi. Global o`zgaruvchi esa funksiyaning bajarilishi davomida oldingi qiymatini saqlab turadi. Bu g`oya navbatdagi misolda namoyish qilingan.
18–misol. Global va lokal o`zgaruvchilarning qo`llanishi.
# include using namespace std;
void MeningFunksiyam() ; // prototip
int x = 5, y = 7; // global o`zgaruvchilar int main() {
cout << “main()dagi x ning qiymati:”
<cout<<“main()dagi y ning qiymati y:”
<cout << “MeningFunksiyam() funksiyasi”<<
“ishini tugatdi!\ cout<<“main()dagi
<
n
x
\ n”;
ning qiymati:”
cout<<“main()dagi
y
ning qiymati:”
<
return 0; }
void MeningFunksiyam();
{ int y = 10;
cout<<“MeningFunksiyam()dagi”<<
<< “x:” << x <<”\ n”;
cout<<“MeningFunksiyam()dagi”<<
<< “y:” << y <<”\ n”; }
HATIJA:
main()dagi x ning qiymati: 5
main()dagi y ning qiymati: 7
MeningFunksiyam()dagi x: 5
MeningFunksiyam()dagi y: 10
MeningFunksiyam()funksiyasi ishini tugatdi!
main()dagi x ning qiymati: 5
main()dagi y ning qiymati: 7
Funksiyani ichida aniqlangan o`zgaruvchilar lokal ko`rinish sohasiga ega deyiladi. Yuqorida aytib o`tilganidek, bu o`zgaruvchilarni faqatgina funksiyaning ichidagina qo`llash mumkinligini anglatadi. C++ da o`zgaruvchilarni nafaqat dasturning boshida, balki ixtiyoriy joyda aniqlash mumkin. Agarda o`zgaruvchi funksiya tanasidagi biror bir blok ichida aniqlangan bo`lsa, bu o`zgaruvchi faqatgina shu blok ichidagina ta`sirga ega bo`lib butun funksiyaning ichida ko`rinish sohasiga ega bo`lmaydi.
– misol. Lokal o`zgaruvchini ko`rinish sohasi.
# include using namespace std; void MeningFunksiyam(); int main() {
int x=5;
cout<<“\n\n main()dagi x ning qiymati:”
<MeningFunksiyam();
cout<<”\n main()dagi x ning qiymati:”<< x; return 0; }
void MeningFunksiyam();
{int x = 8;
cout <<”\n\n MeningFunksiyam()dagi”
<<”lokal x ning qiymati: ”<< x << endl;
{
cout << “\ n\ MeningFunksiyam() ”
<<“funksiyasi blokidagi x ning qiymati”
<< “ x:”<int x = 9;
cout<<”\n Blok ichida aniqlangan”
<< x ning qiymati:”<}
cout<<“\n MeningFunksiyam()dagi” << “blockdan tashqarisida x ning qiymati:”
<}
HATIJA:
main() dagi x ning qiymati: 5
MeningFunksiyam() dagi lokal x ning qiymati: 8
MeningFunksiyam() funksiyasi blokidagi x ning qiymati: 8
Blok ichida aniqlangan x ning qiymati: 9
MeningFunksiyam() dagi blockdan tashqarisida x ning qiymati: 8