Menu
Coddy logo textTech

İşaretçiler ile Değişkenleri Değiştirme

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 27 / 63.

Artık işaretçilerin gerçek gücünden yararlanabilirsiniz: bir işlev aracılığıyla özgün değişkeni değiştirmek. Bir işlev’e işaretçi ilettiğinizde, işlev bu bellek adresinde depolanan değeri değiştirmek için başvuruyu kaldırma işleci’ni kullanabilir.

İşlevin içinde, özgün değişkenin değerine erişmek ve bu değeri değiştirmek için işaretçinin başvurusunu * operatörünü kullanarak kaldırırsın. Bu teknik, değişkenin bellekteki konumuna bir başvuru aktardığın için başvuru yoluyla geçirme olarak adlandırılır.

void doubleValue(int *ptr) {
    *ptr = *ptr * 2;  // Dereference to modify the original value
}

int main() {
    int x = 5;
    doubleValue(&x);  // x'in adresini geç
    // x artık 10!
    return 0;
}

Anahtar, işaretçinin tuttuğu bellek adresindeki değeri değiştirmek için atamanın sol tarafında *ptr kullanmaktır. Bu, işlevlerin çağıran işlevdeki değişkenleri kalıcı olarak değiştirmesine olanak tanır ve değerle geçişin tek başına gerçekleştiremeyeceği güçlü programlama olanaklarının önünü açar.

challenge icon

Görev

Kolay

Bir tamsayının değerini üç katına çıkaran bir işlev oluşturarak işaretçiler aracılığıyla değişkenlerin değiştirilmesini gösteren bir C programı yazın.

Programınız şunları yapmalıdır:

  1. Parametre olarak bir tamsayıya işaretçi alan, tripleValue adlı bir işlev oluşturun
  2. tripleValue işlevinin içinde, bellek adresindeki değeri 3 ile çarpmak için başvuru kaldırma işleci kullanın
  3. tripleValue işlevinin içinde, yeni değeri şu biçimde yazdırın: Value tripled to: [value]
  4. main işlevinde, number adlı bir tamsayı değişkeni tanımlayın ve 8 değeriyle başlatın
  5. Özgün değeri şu biçimde yazdırın: Original value: [value]
  6. tripleValue işlevini çağırın ve adres alma işleciyle number değişkeninin adresini geçirin
  7. İşlev çağrısından sonra, number değişkeninin son değerini şu biçimde yazdırın: Final value: [value]

Çıktınız, işlevin işaretçi aracılığıyla özgün değişkeni başarıyla değiştirdiğini göstermelidir:

Original value: 8
Value tripled to: 24
Final value: 24

Bu meydan okuma, işaretçiler kullanılarak başvuru ile geçirmenin gücünü gösterir; işlev, işaretçinin başvurusunu kaldırarak ve ilgili bellek konumundaki değeri değiştirerek özgün değişkeni kalıcı olarak değiştirebilir.

Kendin dene

#include <stdio.h>

// TODO: tripleValue fonksiyonunuzu buraya yazın

int main() {
    // TODO: Kodunuzu buraya yazın
    // number değişkenini tanımlayın ve başlatın
    // Print the original value
    // tripleValue fonksiyonunu çağırın
    // Son değeri yazdırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi