CPP 021 – Scope & Local/Global Variables

Scope

Belli bir alan, gövde, kapsam olarak düşünebiliriz. { ile başlar } ile biter. Bir scope içinde olan o scope içinde kalır. Aslında bunu tarlaları çevreleyen çit olarak, ülkelerin sınırı olarak da düşünebilirsiniz.

int main(){ /* buralar hep çimendi */ }

Local/Global Variables

Bir değişken bir fonksiyonun daha doğrusu scope’un içinde olduğunda o scope a ait lokal bir değişken olmuş oluyor. Scopeların dışında tanımlanan değişkenlere de global değişken diyoruz.

#include <iostream>
using namespace std;

int gi{}; // bu bir global değişkendir

void f() {
	int fi{}; // bu bir local değişkendir

	//cout << mi << endl; // HATA
	cout << gi << endl;
	cout << fi << endl;
}

int main() {
	int mi{}; // bu da bir local değişkendir

	cout << mi << endl;
	cout << gi << endl;
	//cout << fi << endl; // HATA
}

Farklı scopelardaki değişkenlere ulaşıp kullanamıyoruz AMA global değişkenlere ulaşıp kullanabiliriz. Farklı scopelardaki değişkenlere ulaşamadığımız için aynı değişken ismini tekrar tekrar kullanabiliriz.

Peki global bir değişkenle local bir değişken aynı isme sahip olabilir mi? Evet sahip olabilir. Bu durumda local değşiken geçerli olur. Tabi ki global değişkene de erişebiliriz bunun için değişkennin başnı :: koyuyoruz

#include <iostream>
using namespace std;

int sayi = 5;
int main() {
	int sayi = 10; 
	cout << sayi << endl; // 10 

	// globaldeki sayiya erismek icin
	cout << ::sayi << endl; // 5	


	// Aslinda daha da ileri gidebiliriz 
	{
		int sayi = 7;
		cout << sayi << endl; // 7

		// globaldeki sayiya erismek icin
		cout << ::sayi << endl; // 5	
	}

}


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *