Değişkenler ayrıca tartışmamızın ana konusu olan 'yerel' ve 'küresel' değişken olarak sınıflandırılır. Burada bir yerel ve global değişken arasındaki ana fark, global değişkenin programdaki işlevlerin dışında bildirildiği gibi, bir işlev bloğunda yerel bir değişken bildirilmiş olmasıdır.
Yerel ve küresel bir değişken arasındaki karşılaştırma farkıyla birlikte biraz daha farklılıkları inceleyelim.
Karşılaştırma Tablosu:
Karşılaştırma için temel | Yerel değişken | Küresel değişken |
---|---|---|
deklarasyon | Değişkenler bir işlev içinde bildirilir. | Değişkenler herhangi bir işlevin dışında bildirilir. |
kapsam | İçinde bildirildikleri bir işlev içinde. | Program boyunca. |
Erişim | Yalnızca ifadelerle erişilir, bildirildikleri bir işlev içinde. | Programın içindeki herhangi bir ifade ile erişildi. |
hayat | Çıkışta fonksiyon bloğuna girildiğinde ve yok edildiğinde oluşturulur. | Programınızın yürütüldüğü süre boyunca varlığını koruyun. |
Depolama | Yerel değişkenler belirtilmedikçe yığın üzerinde saklanır. | Derleyici tarafından belirlenen sabit bir yerde saklanır. |
Yerel Değişken tanımı
Bir yerel değişken her zaman bir fonksiyon bloğunda bildirilir. C de, bir kod bloğunun başlangıcında yerel bir değişken bildirilir. C ++ 'da kullanımdan önce kod bloğunun herhangi bir yerinde bildirilebilir. Yerel değişkenlere, yalnızca yerel değişkenin bildirildiği bir işlev içinde yazılmış ifadelerle erişilebilir. Aynı programın başka hiçbir işlevi ile erişilemeyecekleri anlamında güvendedirler.
Yerel değişken, fonksiyon bloğu yürütülene kadar var olur ve böylece yürütme bloktan çıktıktan sonra yok edilir. Yerel değişkenler, yürütme bildirildikleri bloktan çıkar çıkmaz içeriğini kaybeder.
Bunun nedeni, yerel değişkenlerin özel depoları belirtilmediği sürece yığında depolanmasıdır. Yığın, doğada dinamiktir ve hafıza konumundaki değişiklik, bir fonksiyon bloğu var olduğu anda yerel değişkenlerin değerlerini tutmama nedenine neden olur.
Not:
Ancak, 'statik' değiştiriciyi kullanarak yerel bir değişkenin değerini korumanın bir yolu vardır.
Global Değişken Tanımı
Bir programda bulunan tüm fonksiyonların dışında global bir değişken bildirilir. Yerel değişkenlerin aksine, global değişkene bir programda bulunan herhangi bir fonksiyonla erişilebilir. Global değişkenler, değerleri programda bulunan herhangi bir fonksiyonla değiştirilebileceği için güvenilir değildir.
Genel değişkenler, tüm program tamamen yürütülene kadar varlığını sürdürmektedir. Genel değişkenler, program yürütülene kadar değerlerini korur. Bunun nedeni, derleyici tarafından kararlaştırılan sabit bir bellek bölgesinde depolanmış olmalarıdır.
Bir Global değişkeni, birden fazla fonksiyonun aynı verilere eriştiği durumlarda yardımcı olur. Genel değişkenlerin değerinde istenmeyen değişiklikler olabileceğinden, çok sayıda global değişken kullanmak sorunlu olabilir.
Yerel ve Global Değişken Arasındaki Temel Fark.
- Yerel Değişkenler 'yerel' olarak adlandırılır, çünkü yalnızca içinde bildirildiği bir işlevde yazılan ifadeler ile tanınırlar ve bu işlev bloğunun dışında bulunan diğer işlevler tarafından bilinmezler. Global değişken durumunda, bir programda bulunan her bir fonksiyon tarafından bilinirler; Bu nedenle, onlar 'küresel' denir.
- Genel değişkenler, program yürütme aşamasına gelinceye kadar değerlerini korur, çünkü derleyici tarafından belirlenen sabit bir yerde saklanırlar. Yerel değişkenler yığında saklanır; bu nedenle, 'yığın' doğada dinamik olduğu için değerlerini korumazlar, ancak derleyici 'statik' değiştiriciyi kullanarak değerlerini korumaya yönlendirilebilir.
- Eğer bir global ve bir yerel değişken aynı isimle bildirilirse, yerel değişkenin bildirildiği bir kod bloğunun tüm ifadeleri sadece yerel bir değişkene atıfta bulunacak ve global bir değişkene etki etmeyecektir.
- Programın kontrolü, yerel değişkenin bildirildiği bloktan çıktığında bir yerel değişken yok edilir. Ancak, tüm program sonlandırıldığında global bir değişken yok edilir.
Sonuç:
Yerel ve küresel değişkenlerin her ikisi de programı yazarken eşit olarak gereklidir. Ancak, çok sayıda global değişken bildirmek, global değişkende istenmeyen değişikliklere neden olabileceği için büyük bir programda sorunlu olabilir; ve bir programın hangi bölümünün bu değişikliği yaptığını tanımlamak zorlaşacaktı. Dolayısıyla, gereksiz global değişkenler bildirmekten kaçınılmalıdır.