Pointer Nedir?
Yayın: · Son güncelleme:
Pointer Nedir? Kısaca
Pointer (işaretçi), bir değerin kendisini değil, o değerin bellekteki adresini tutan değişkendir. Özellikle C ve C++ dillerinde belleğe doğrudan erişmek ve büyük verileri kopyalamadan aktarmak için kullanılır.

Pointer nedir?
Pointer, bir değişkenin bellekteki adresini saklayan özel bir değişkendir. Normal bir değişken "42" gibi bir değeri tutar. Pointer ise "bu değer bellekte şu adreste" bilgisini taşır. Türkçede işaretçi olarak çevrilir.
Nasıl çalışır?
Bilgisayar belleğini numaralı kutulardan oluşan uzun bir raf gibi düşünebilirsiniz. Her değişken bu kutulardan birinde durur ve her kutunun bir adresi vardır. Pointer, kutunun içindekini değil, kutunun numarasını bilir. Bu numarayı kullanarak içerideki değeri okuyabilir ya da değiştirebilirsiniz.
C dilinde bu şöyle görünür: int yas = 30; bir tam sayı tanımlar. int *p = &yas; satırı ise yas değişkeninin adresini p adlı pointer'a atar. Artık *p = 31; yazdığınızda, yas değişkeninin değeri de 31 olur. Çünkü ikisi aynı kutuya bakar.
Neden kullanılır?
Büyük bir veriyi fonksiyona kopyalamak yerine adresini vermek hem hızlı hem bellek dostudur. Bağlı liste ve ağaç gibi veri yapıları da düğümleri birbirine pointer'larla bağlar. İşletim sistemleri, sürücüler ve gömülü sistemler gibi donanıma yakın yazılımlar bu yüzden pointer'ı yoğun kullanır.
Nelere dikkat etmeli?
Pointer güçlüdür ama hataya açıktır. Hiçbir yeri göstermeyen null pointer'ı kullanmak programı çökertir. Silinmiş bir belleği gösteren sarkan pointer ise beklenmedik sonuçlara ve güvenlik açıklarına yol açabilir. Pointer kullanırken her zaman başlangıç değeri atayın ve belleği serbest bıraktıktan sonra pointer'ı null yapın.
Sıkça Sorulan Sorular
Pointer ne demek?
Pointer, İngilizcede "işaret eden" anlamına gelir. Programlamada bir verinin bellekte nerede durduğunu gösteren adres değişkenidir.
Python ve Java'da pointer var mı?
Bu dillerde pointer doğrudan kullanılmaz. Nesneler arka planda referanslarla yönetilir, ancak geliştirici adreslerle aritmetik işlem yapamaz; bu da pek çok bellek hatasını önler.