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.