0Pricing
C Academy · Ders

static Değişkenler

Kalıcı yerel değişkenler

static Değişkenler, CoddyKit'te ücretsiz bir C Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C Academy kursu toplamda 4 dersten oluşur.

static Anahtar Sözcüğü

static bir yerel değişken, işlev çağrıları arasında değerini korur. Ömrü programın tamamıdır.

#include <stdio.h>
void f(void) {
    static int count = 0;
    count++;
    printf("count = %d\n", count);
}
int main(void) {
    f();
    f();
    f();
    return 0;
}

Yalnızca Bir Kez Başlatılır

static değişken yalnızca işlevin çalıştığı ilk seferde başlatılır. Sonraki çağrılarda başlangıç ifadesi atlanır.

#include <stdio.h>
void f(void) {
    static int x = 100;
    printf("x = %d\n", x);
    x += 10;
}
int main(void) {
    f();
    f();
    return 0;
}

Varsayılan Değer Sıfırdır

auto değişkenlerinin aksine, başlangıç ifadesi olmayan bir static değişkeni 0 değeriyle başlar.

#include <stdio.h>
void f(void) {
    static int n;
    printf("n = %d\n", n);
    n++;
}
int main(void) {
    f();
    f();
    return 0;
}

Çağrıları Sayma

Klasik bir kullanım, bir işlevin kaç kez çağrıldığını saymaktır.

#include <stdio.h>
int nextId(void) {
    static int id = 0;
    return ++id;
}
int main(void) {
    printf("%d %d %d\n", nextId(), nextId(), nextId());
    return 0;
}

static Ömrü, Yerel Kapsam

Bir static yerel değişkenin yine de yerel kapsamı vardır. Onu yalnızca işlev görebilir; ancak değerini çağrılar arasında korur.

#include <stdio.h>
void tick(void) {
    static int t = 0;
    t++;
    printf("tick %d\n", t);
}
int main(void) {
    tick();
    tick();
    return 0;
}

static ve auto Karşılaştırması

Karşılaştırın: Bir auto sayaç her çağrıda sıfırlanırken, bir static sayaç birikimli olarak artar.

#include <stdio.h>
void autoCounter(void) {
    int c = 0;
    c++;
    printf("auto: %d\n", c);
}
int main(void) {
    autoCounter();
    autoCounter();
    return 0;
}

Dosya Kapsamında static

Dosya kapsamında static, iç bağlama anlamına gelir: değişken yalnızca kendi kaynak dosyasına özeldir.

#include <stdio.h>
static int secret = 7;
int main(void) {
    printf("secret = %d\n", secret);
    return 0;
}

static ile Önbelleğe Alma

static değişkenler, hesaplanan bir değeri önbelleğe alarak değerin yalnızca bir kez hesaplanmasını sağlayabilir.

#include <stdio.h>
int getBase(void) {
    static int base = 0;
    if (base == 0) {
        base = 50;
        printf("computed once\n");
    }
    return base;
}
int main(void) {
    printf("%d\n", getBase());
    printf("%d\n", getBase());
    return 0;
}

Durum Biriktirme

static yerel değişkenler, bir işlevin global değişken kullanmadan toplamı hatırlamasını sağlar.

#include <stdio.h>
int addToTotal(int v) {
    static int total = 0;
    total += v;
    return total;
}
int main(void) {
    printf("%d\n", addToTotal(10));
    printf("%d\n", addToTotal(5));
    return 0;
}

Bir Uyarı

static durum, bir işlevi geçmişe bağımlı hâle getirir; bu da işlevi sınamayı zorlaştırabilir. Dikkatli kullanın.

#include <stdio.h>
int stepNumber(void) {
    static int s = 0;
    return ++s;
}
int main(void) {
    printf("step %d\n", stepNumber());
    printf("step %d\n", stepNumber());
    return 0;
}

Döngülerle Birlikte Kullanma

Döngü gövdesi içindeki bir static yerel değişken, değerini hem yinelemeler hem de çağrılar arasında korur.

#include <stdio.h>
void run(void) {
    static int seen = 0;
    for (int i = 0; i < 2; i++)
        seen++;
    printf("seen = %d\n", seen);
}
int main(void) {
    run();
    run();
    return 0;
}

Hızlı Kontrol

static değişkenler konusundaki anlayışınızı sınayın.

Özet: static Değişkenler

Kalıcı yerel değişkenleri öğrendiniz.

  • static yerel değişkenler programın tamamı boyunca var olur
  • Bir kez başlatılır ve varsayılan olarak 0 değerini alırlar
  • Yerel kapsamlarını korur, ancak değerlerini saklarlar
  • Dosya kapsamında static iç bağlama sağlar
  • Sayaçlar ve önbellekler için kullanışlıdır

Sıkça Sorulan Sorular

“static Değişkenler” dersi ücretsiz mi?

Evet — “static Değişkenler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C Academy kursu toplamda 4 dersten oluşur.

“static Değişkenler” dersinde ne öğreneceğim?

Kalıcı yerel değişkenler C Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“static Değişkenler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. auto ve Yerel Kapsam
  2. static Değişkenler
  3. extern ve Genel Kapsam
  4. register ve const
← C Academy Sayfasına Dön