Ko'rsatish sohasi (Variable Scope)
Funksiyalar qanday ishlashini tushunganingizdan so'ng, o'zgaruvchilarning funksiyalar ichida va tashqarisida qanday harakat qilishini bilish muhim.
C++ da o'zgaruvchilar faqat yaratilgan mintaqada mavjud bo'ladi. Bu ko'rsatish sohasi (scope) deyiladi.
Mahalliy soha (Local Scope)
Funksiya ichida yaratilgan o'zgaruvchi shu funksiyaning mahalliy sohasiga tegishli va faqat shu funksiya ichida ishlatilishi mumkin:
MISOL
void myFunction() {
// myFunction ga tegishli mahalliy o'zgaruvchi
int x = 5;
// x ni chiqarish
cout << x;
}
int main() {
myFunction();
return 0;
}Mahalliy o'zgaruvchi tegishli bo'lgan funksiyadan tashqarida ishlatib bo'lmaydi. Tashqarida murojaat qilsangiz, xatolik yuzaga keladi:
XATO MISOL
void myFunction() {
int x = 5;
}
int main() {
myFunction();
cout << x; // XATO! x bu yerda mavjud emas
return 0;
}Global soha (Global Scope)
Funksiyadan tashqarida yaratilgan o'zgaruvchi global o'zgaruvchi deyiladi va global sohaga tegishli bo'ladi.
Global o'zgaruvchilar har qanday sohada — global va mahalliy — foydalanish mumkin:
MISOL
// Global o'zgaruvchi x
int x = 5;
void myFunction() {
// Bu yerda x dan foydalanish mumkin
cout << x << "\n";
}
int main() {
myFunction();
// Bu yerda ham x dan foydalanish mumkin
cout << x;
return 0;
}O'zgaruvchilarni nomlash
Funksiya ichida va tashqarisida bir xil nomdagi o'zgaruvchi ishlatsangiz, C++ ularni ikki alohida o'zgaruvchi sifatida ko'radi:
MISOL
int x = 5; // Global
void myFunction() {
int x = 22; // Mahalliy
cout << x << "\n"; // Mahalliy x ga murojaat (22)
}
int main() {
myFunction();
cout << x; // Global x ga murojaat (5)
return 0;
}ESLATMA
Global va mahalliy o'zgaruvchilar uchun bir xil nom ishlatishdan saqlaning — bu xatolik va chalkashlikka olib kelishi mumkin.
Global o'zgaruvchilar bilan ehtiyot bo'ling, chunki ular har qanday funksiyadan o'zgartirilishi mumkin:
MISOL
int x = 5; // Global
void myFunction() {
cout << ++x << "\n"; // x qiymatini 1 ga oshirish va chiqarish
}
int main() {
myFunction();
cout << x; // Endi x 6 (5 emas)
return 0;
}Xulosa
Iloji boricha mahalliy o'zgaruvchilardan (yaxshi nomlar bilan) foydalaning. Bu kodingizni qo'llab-quvvatlashni osonlashtiradi va yaxshiroq tushunishga yordam beradi.
