Menu
Coddy logo textTech

Dereference Operatörü (*)

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

Adresleri işaretçilerde nasıl saklayacağınızı bildiğinize göre, o bellek adresinde saklanan gerçek değere nasıl erişeceğinizi öğrenmeniz gerekir. Dereference operatörü (*), işaret ettiği değeri almak için işaretçiyi "takip etmenize" olanak tanır.

* operatörünü bir işaretçi değişkeninin önüne yerleştirdiğinde, işaretçinin tuttuğu bellek adresinde depolanan değere erişir. Bunu, "bana bu adresteki odanın içinde ne olduğunu ver" demek gibi düşünebilirsin.

int age = 25;
int *ptr = &age;
printf("%d", *ptr);    // 25 yazdırır - age'in değeri

C dilinde yıldız işaretinin (*) iki farklı anlamı olduğunu anlamak önemlidir. int *ptr; gibi bir işaretçi tanımlarken, yıldız işareti ptr değişkeninin bir işaretçi olduğunu belirtir. *ptr gibi mevcut bir işaretçi ile kullanıldığında, işaret ettiği değere erişmek için işaretçiyi dereference eder.

Dereferans operatörü temeldir çünkü işaretçi döngüsünü tamamlar: & ile bir işaretçide bir adres saklayabilir ve ardından * ile o adresteki değeri geri alabilirsiniz. Bu, bellek adresleri aracılığıyla değişkenlere dolaylı olarak erişmenize ve onları değiştirmenize olanak tanır.

challenge icon

Görev

Kolay

Bildirim, adres ataması ve başvuru kaldırma işlemlerini içeren eksiksiz işaretçi iş akışını gösteren bir C programı yaz. Programın şunları yapması gerekir:

  1. value adlı bir tamsayı değişkeni bildir ve 75 değeriyle başlat
  2. price adlı bir float değişkeni bildir ve 19.99 değeriyle başlat
  3. value_ptr adlı bir tamsayı işaretçisi bildir
  4. price_ptr adlı bir float işaretçisi bildir
  5. Adres operatörünü kullanarak value değişkeninin adresini value_ptr değişkenine ata
  6. Adres operatörünü kullanarak price değişkeninin adresini price_ptr değişkenine ata
  7. Dereference operatörünü kullanarak value üzerinden value_ptr değerini yazdır
  8. Dereference operatörünü kullanarak price üzerinden price_ptr değerini tam olarak 2 ondalık basamakla yazdır

Çıktınız, başvurusu kaldırılmış değerleri aşağıdaki biçimde göstermelidir:

Value through pointer: 75
Price through pointer: 19.99

Bu görev, dereference operatörünün işaretçinin sakladığı adresi izleyerek özgün değişkenin değerini nasıl aldığını anladığınızı test eder.

Kendin dene

#include <stdio.h>

int main() {
    // YAPILACAK: Kodunuzu buraya yazın
    // 1. Değişkenleri tanımlayın ve başlatın
    // 2. İşaretçileri tanımlayın
    // 3. İşaretçilere adresleri atayın
    // 4. Başvurusu kaldırılmış değerleri 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