C++ Ders 11[Değişkenlerin Etki Alanı]

Life Hunter

Lapis Toplayıcısı
En iyi cevaplar
0
Merhabalar bu ders değişkenlerin etki alanı konusuna değineceğiz. Etki alanı çok önemli bir konudur. O yüzden iyi anlamaya çalışın.
Etki Alanı:
Değişkenler tanımlandıkları küme parantezleri { içerisinde varlıklarını sürdürürler.
Bir değişken hangi küme parantezi içerisinde tanımlanmışsa, o küme parantezinin tersi } yani kapama parantezi geldiğinde değişkene veda edebilirsiniz.
Şimdi biraz örnek yapalım:

Kod:
int main()
{
    int sayi1 = 4;




}
Örneğin yukarıda gördüğünüz gibi bir main fonksiyonumuz var. İçine bir değişken oluşturduk sayi1 diye. Şimdi sayi1 in etki alanı neresidir?
Tanımlandığı küme parantezinin sonuna kadar etkilidir. Main fonksiyonunun hemen altında bir küme parantezi açılmış görüyorsunuz. Biraz aşağıda da küme parantezi kapatılmış. En aşağıdaki yani kapatılan küme parantezine kadar sayi1 etkilidir.
Kod:
int main()
{
   int sayi1 = 4;




}
int fonksyion()
{
    cout << sayi1;
}
Ama yukarıda olduğu gibi farklı bir alan içinde kullanamazsınız sayi1 değişkenini. Örneğin yukarıdaki örnekte bir fonksyon oluşturmuşuz(fonksiyonlara ilerde değineceğiz.)onun da kendine has küme parantezleri vardır. O fonksiyonun içinde sayi1'i ekrana göster dediğimiz zaman hata alacağızdır. Derleyici böyle bir değişkeni tanımadığını söyleyecektir. Çünkü sayi1 değişkeni sadece main fonksiyonun küme parantezleri içerisinde etkilidir. main fonksiyonunu kapatan küme parantezinden sonra sayi1 etkisizdir. Kullanamazsınız onu artık.
Kod:
int main()
{
    int sayi1 = 5;
   
    if (1)
    {
        cout << sayi1;
    }
   
}
Yukarıda gördüğünüz gibi main fonksiyonunun içine yeni bir etki alanı oluşturmuşuz ve o etki alanının içine sayi1 i ekranda göster demişiz. Burada bir sorun çıkmaz çünkü bizim yeni oluşturduğumuz etki alanı sayi1 değişkeninin etki alanı içerisinde kalıyor. sayi1 Değişkeninin etki alanı main fonksiyonunun kapatılma parantezine kadardı değilmi? Ama yeni oluşturduğumuz etki alanı main fonksiyonunun kapatma parentezinin dışında değil, içerisinde kaldığı için bir sorun çıkmadı.
Kod:
int main()
{
    int sayi1 = 5;
   
    if (1)
    {
        int sayi2 = 2;
    }
    cout << sayi2; //HATALI
}
Fakat yukarıda olduğu gibi yeni oluşturduğumuz etki alanının içerisinde bir değişken yaratıp, o değişkeni main fonksiyonunda çağırmaya çalışırsak hata alırız. Çünkü sayi2 değişkeni bizim yeni oluşturduğumuz etki alanı içerisinde geçerlidir. main fonksiyonu yeni oluşturduğumuz etki alanı dışında kalıyor. O yüzden de sayi2 değişkenini çağıramadık yeni oluşturduğumuz etki alanı dışında.

Sizde kendiniz yeni etki alanları yaratıp sürekli örnek yapın.
Etki alanının mantığı çok basittir ama çok önemli bir konudur o yüzden anlamadığınız yer olduysa mutlaka sorun.
 
Üst