Hakkında Künye

C Dilinde Pointer Kavramı ve Temel Tanımlama Yöntemleri

Son 20 yılda önemini koruyan programlama dilleri arasında C / C++ bulunmaktadır. Bunun nedenleri arasında ise bu programlama dillerinde düşük ve yüksek seviyede yazılım geliştirilebilmesi var. Bu yazı C dilinin genel söz dizimini bilenler içindir. Her iki dil zorunlu programlama paradigması statüsündedir. Ancak C++ dili nesneye dayalı programlama sınıfındadır. Bu iki dilin sözdizimi ise benzerdir. Hatta günümüzde hemen her derleyicide, bu iki dilde program geliştirmek mümkündür. Diğer anlamda bir C / C++ derleyicisinde, sadece C dili (nesneye dayalı olmadan) veya sadece C++ dili ile (nesneye dayalı olacak şekilde) kod yazılabilir.

Bu dilleri verimli kullanmak için işaretçi (pointer) kavramı iyi bilinmelidir. Bu kavramın üzerine soyut veri yapıları ve pointer aritmetiği gelir. Soyut veri yapıları ise genellikle pointer aritmetiği ile birlikte kullanılmaktadır.

Bir pointer, diğer veri tiplerine göre bellekte daha az yer tutar. Aynı zamanda bir pointer sadece bir bellek adresi içerir.

Örnek 1 (Bir pointer tanımlanması)
Örnek 2 (Bir pointer içeriği ve pointer içeriğinin değiştirilmesi):

Yukarıda “Örnek 1” ortamında bir pointer tanımlanmıştır. Ancak tanımlanan pointer, başka bir (int tipinde olan) değişkenin adresini içermektedir. “Örnek 2” de ise “Örnek 1” de bulunan ifadeler detaylandırılmıştır. “Örnek 2” incelendiğinde, tanımlanan “p” isimli pointer değişkenin içeriği (bu durumda sahip olduğu adres değeri), yine öncesinde tanımlanan “sayi” değişkeninin adresini içerdiği görülecektir.

Bir pointer ifadesini başka bir yöntem ile tanımlamak mümkündür. Buna dinamik bellek yöntemi ile (bellekten yer alarak) tanımlama denir. Soyut veri yapıları, bu tipdeki pointer değişkenleri ile oluşturulmaktadır.

Örnek 3 (Bir pointer değişkeninin bellekten yer alarak tanımlanması):

Bu yazımda işaretçi (pointer) kavramının ne olduğunu ve çok kullanılan temel düzeyde tanımlama yöntemlerini anlattım. Bir sonraki yazımda fonksiyonlarda pointer ifadelerinin para- metre olarak kullanılması ve “struct” yapılarında pointer kullanımını yazacağım.

Kaynakça

İlker Çetin Aydınlıoğlu
- 4 -