Statik, C programlama dilinde kullanılan bir anahtar kelimedir. Hem değişkenlerle hem de işlevlerle kullanılabilir, yani statik bir değişken ve statik işlevi de bildirebiliriz. Sıradan bir değişken, tanımlandığı kapsam ile sınırlıdır, statik değişkenin kapsamı ise programın tamamıdır.
Statik anahtar kelime aşağıdaki durumlarda kullanılabilir:
Bir global değişken statik bir anahtar sözcükle bildirildiğinde, statik bir global değişken olarak bilinir. Programın üst kısmında bildirilir ve görünürlüğü program boyunca sağlanır.
Bir işlev, statik işlev olarak bilinen statik bir anahtar kelimeyle bildirildiğinde. Ömrü program boyuncadır.
Yerel bir değişken statik bir anahtar kelimeyle bildirildiğinde, statik yerel değişken olarak bilinir. Statik bir yerel değişkenin hafızası program boyunca geçerlidir, ancak bir değişkenin görünürlük kapsamı otomatik yerel değişkenlerle aynıdır. Bununla birlikte, işlev ilk işlev çağrısı sırasında statik yerel değişkeni değiştirdiğinde, bu değiştirilmiş değer bir sonraki işlev çağrısı için de kullanılabilir olacaktır.
Üye değişkenler bir sınıfta statik bir anahtar kelimeyle bildirildiğinde, bu, statik üye değişkenler olarak bilinir. Belirli bir örnekle değil, bir sınıfın tüm örnekleri tarafından erişilebilirler.
Statik bir anahtar kelimeyle bildirilen bir sınıfın üye işlevi, statik yöntem olarak bilinir. Belirli bir örnekle değil, bir sınıfın tüm örnekleri tarafından erişilebilir.
Bir örnek üzerinden anlayalım.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
Yukarıdaki kodda func() işlevi çağrılmıştır. func()'da count değişkeni güncellenir. Fonksiyonun yürütülmesi tamamlanır tamamlanmaz count değişkeninin hafızası kaldırılacaktır. Eğer sayımı hafızadan kaldırmak istemiyorsak bu durumda count değişkenini statik olarak kullanmamız gerekir. Değişkeni statik olarak bildirirsek, fonksiyon çalışmasını tamamlasa bile değişken bellekten silinmeyecektir.
Çıktı
1 1
Statik değişken
Statik değişken, çeşitli işlev çağrılarında değerini koruyan bir değişkendir.
Sözdizimi
Statik bir değişkenin sözdizimi aşağıda verilmiştir:
javascript if ifadesi
static data_type variable_name;
Statik değişkenin basit bir örneğine bakalım.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
Yukarıdaki kodda count değişkenini static olarak tanımladık. func() çağrıldığında count değeri 1 olarak güncellenir ve bir sonraki fonksiyon çağrısında count değişkeninin değeri 2 olur. Dolayısıyla statik değişkenin değerinin fonksiyon çağrısı içinde kaldığını söyleyebiliriz. .
Çıktı
1 2
Statik İşlev
Statik olmayan işlevlerin varsayılan olarak global olduğunu bildiğimiz için, işleve dosya dışından da erişilebilmektedir, ancak işlevi statik olarak bildirirsek bu, işlevin kapsamını sınırlar. Statik fonksiyona yalnızca bir dosya içinden erişilebilir.
Ağ ve Internet
Statik işlev şuna benzer:
static void func() { printf('Hello javaTpoint'); }
Farklılıklar s/b statik ve global değişken
Global değişkenler, fonksiyonun dışında bildirilen değişkenlerdir. Bu global değişkenler programın başında mevcuttur ve kapsamı programın sonuna kadar devam eder. Program dışından da erişilebilir.
Statik değişkenler tanımlandıkları kaynak dosyayla sınırlıdır, yani diğer kaynak dosyalar tarafından erişilemezler.
Hem statik hem de global değişkenler statik başlatmaya sahiptir. Burada statik başlatma, eğer değişkene herhangi bir değer atamazsak, varsayılan olarak değişkene 0 değeri atanacağı anlamına gelir.
Farklılıklar s/b statik yerel ve statik global değişken
Statik küresel değişken
Değişken, fonksiyonun dışında statik bir anahtar kelimeyle bildirilirse, statik global değişken olarak bilinir. Program boyunca erişilebilir.
Statik yerel değişken
Statik anahtar kelimeye sahip değişken, bir fonksiyonun içinde bildirilir ve statik yerel değişken olarak bilinir. Statik yerel değişkenin kapsamı, otomatik yerel değişkenlerle aynı olacaktır ancak belleği, programın yürütülmesi boyunca kullanılabilir olacaktır. İşlev, bir işlev çağrısı sırasında statik yerel değişkenin değerini değiştirdiğinde, bir sonraki işlev çağrısı sırasında bile aynı kalacaktır.
Statik bir değişkenin özellikleri
Statik bir değişkenin özellikleri şunlardır:
- Statik bir değişkenin belleği, statik bir değişken içinde tahsis edilir.
- Belleği program boyunca kullanılabilir ancak kapsamı otomatik yerel değişkenlerle aynı kalacaktır. Onun
- değer çeşitli işlev çağrılarında kalıcı olacaktır.
- Değişkene herhangi bir değer atamazsak varsayılan değer 0 olacaktır.
- Genel bir statik değişkene program dışından erişilemezken, genel bir değişkene diğer kaynak dosyalar tarafından erişilebilir.