2.1 Değişken Kapsamı (Variable Scope)

C++ dilinde değişkenlerin kapsamı, bir değişkenin tanımlandığı yerin, o değişkenin erişilebilir olduğu alanı belirler. Değişkenin kapsamı, programın hangi bölümlerinde bu değişkene erişilebileceğini ve kullanılabileceğini belirler. C++’ta üç ana değişken kapsamı türü bulunmaktadır: global, local, ve block scope.

1. Global Değişkenler

Global değişkenler, tüm program boyunca erişilebilen değişkenlerdir. Genellikle fonksiyonların dışında tanımlanırlar. Bu tür değişkenler, programın herhangi bir yerinden kullanılabilir.

Örnek:

#include <iostream>
using namespace std;

// Global değişken
int globalVar = 10;

void display() {
    cout << "Global Değişken: " << globalVar << endl;
}

int main() {
    display(); // Global değişkene erişim
    return 0;
}

Bu örnekte, globalVar adlı global değişken, display fonksiyonu içinde kullanılmaktadır.

2. Yerel Değişkenler (Local Variables)

Yerel değişkenler, bir fonksiyon veya blok içinde tanımlanan ve yalnızca o fonksiyon veya blok içinde erişilebilen değişkenlerdir. Bu değişkenler, tanımlandıkları fonksiyon veya blok sona erdiğinde yok olurlar.

Örnek:

#include <iostream>
using namespace std;

void showLocal() {
    // Yerel değişken
    int localVar = 20;
    cout << "Yerel Değişken: " << localVar << endl;
}

int main() {
    showLocal(); // Yerel değişken kullanılabilir
    // cout << localVar; // Hata: 'localVar' burada erişilemez
    return 0;
}

Bu örnekte, localVar adlı yerel değişken yalnızca showLocal fonksiyonu içinde erişilebilir.

3. Blok Kapsamı (Block Scope)

Blok kapsamı, bir değişkenin tanımlandığı süslü parantezler {} içinde geçerlidir. Bu tür değişkenler, yalnızca tanımlandıkları blok içinde geçerlidir.

Örnek:

#include <iostream>
using namespace std;

int main() {
    // Blok içindeki değişken
    int blockVar = 30;

    {
        // Yeni bir blok
        int blockVar = 40; // Farklı bir değişken
        cout << "İç Blok Değişkeni: " << blockVar << endl; // 40
    }

    cout << "Ana Blok Değişkeni: " << blockVar << endl; // 30
    return 0;
}

Bu örnekte, blockVar değişkeni iki farklı kapsamda tanımlanmıştır. İlk blockVar ana blok içinde, ikincisi ise iç blokta tanımlanmıştır.

Last updated