Skip to content

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

cpp
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

cpp
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

cpp
// 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

cpp
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

cpp
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.