Menu
Coddy logo textTech

Pointer Tanımlama

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

Artık işaretçilerin ne olduğunu anladığınıza göre, onları nasıl oluşturacağınızı öğrenelim. Bir işaretçi değişkeni bildirmek, derleyiciye işaretçinin hangi veri türünü göstereceğini belirten belirli bir söz dizimini izler.

Bir işaretçi bildirmek için temel söz dizimi şöyledir: data_type *pointer_name;

int *ptr;        // Bir tamsayıya işaretçi bildirir
char *ch_ptr;    // Bir karaktere işaretçi bildirir
float *f_ptr;    // Bir float'a işaretçi bildirir

Yıldız (*) sembolü, bu bildirimi bir pointer bildirimi yapan şeydir. Derleyiciye bu değişkenin gerçek veri değerini değil, bir bellek adresini saklayacağını söyler. int *ptr; bildirimini yaptığınızda, "ptr, bir integer değişkeninin adresini saklayabilen bir pointer'dır" demiş olursunuz.

İşaretçileri henüz geçerli bir bellek adresini göstermiyorlarsa NULL olarak ilklendirmek iyi bir uygulamadır. Bu, rastgele bellek konumlarını göstermelerini engeller: int *ptr = NULL;

İşaretçi adreslerini printf kullanarak yazdırırken %p biçim belirleyicisini kullanın. Uyumluluğu ve doğru biçimlendirmeyi sağlamak için işaretçiyi (void *) türüne dönüştürmeniz genellikle önerilir: printf("%p", (void *)ptr);

Yıldız işaretinden önceki veri türünün, işaretçinin hangi tür veriyi göstereceğini belirttiğine dikkat edin. Bu önemlidir çünkü farklı veri türleri bellekte farklı miktarlarda yer kaplar ve derleyicinin uygun bellek yönetimi için bu bilgiyi bilmesi gerekir.

challenge icon

Görev

Kolay
Uygun işaretçi bildirim sözdizimini gösteren bir C programı yazın. Programınız şunları yapmalıdır:
  1. int_ptr ile başlatılmış, NULL adında bir tamsayı işaretçisi bildirin
  2. char_ptr ile başlatılmış, NULL adında bir karakter işaretçisi bildirin
  3. float_ptr ile başlatılmış, NULL adında bir kayan nokta işaretçisi bildirin
  4. printf biçim belirtecini kullanarak her işaretçide saklanan bellek adreslerini %p ile yazdırın. Yazdırırken, doğru biçimlendirmeyi sağlamak için işaretçiyi (void*) türüne dönüştürün; örneğin: printf("Label: %p\n", (void*)ptr);

Çıktınız üç işaretçi adresini aşağıdaki biçimde göstermelidir:

Integer pointer: [address]
Character pointer: [address]  
Float pointer: [address]

Gerçek bellek adreslerinin değişebileceğini, ancak biçimin ve etiketlerin yukarıda gösterildiğiyle tam olarak eşleşmesi gerektiğini unutmayın.

Kendin dene

#include <stdio.h>

int main() {
    // TODO: İşaretçilerinizi burada bildirin
    
    
    // TODO: İşaretçi adreslerini gerekli formatı kullanarak 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