C Dilinde Pointer Kullanımı: Adres ve Değer İlişkisi

C öğrenirken pointer'lar genellikle ilk zorluğa çarpılan konudur. Oysa pointer'lar C'nin en güçlü özelliklerinden biridir ve iyi anlaşıldığında bellek yönetimini, fonksiyon parametrelerini ve veri yapılarını derinlemesine kontrol etmenizi sağlar.

Pointer basitçe bellek adresini tutan bir değişkendir. Bir değişkenin bellek adresine erişmek için & (adres) operatörünü, bir pointer'ın gösterdiği değere erişmek için (dereferans) operatörünü kullanırız.

1 <stdio.h>
2
3int main() {
4int x = 10;
5int *ptr = &x; // ptr, x'in adresini tutuyor
6
7printf("x'in değeri: %d\n", x);
8printf("x'in adresi: %p\n", (void*)&x);
9printf("ptr'nin değeri (adres): %p\n", (void*)ptr);
10printf("ptr'nin gösterdiği değer: %d\n", *ptr);
11
12*ptr = 20; // Pointer üzerinden x'i değiştir
13printf("x'in yeni değeri: %d\n", x);
14
15return 0;
16}

Bu kodda x değişkeni bellekte bir yere saklanır. ptr pointer'ı bu adresi tutar. & operatörü x'in adresini verir, operatörü ise ptr'nin gösterdiği adresteki değeri verir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Pointer'ların en yaygın kullanım alanları şunlardır: Fonksiyonlara referans geçme (değişkeni değiştirmek için), dinamik bellek ayırma (malloc/calloc), dizi ve yapı işlemleri, ve bağlı listeler gibi veri yapıları.

Bir fonksiyona pointer geçerek, orijinal değişkeni değiştirebilirsiniz:

1void degistir(int *p) {
2*p = 100;
3}
4
5int main() {
6int sayi = 5;
7degistir(&sayi); // Fonksiyon sayi'yi değiştirir
8printf("%d\n", sayi); // Çıktı: 100
9return 0;
10}

Pointer'lar başta kafa karıştırıcı olabilir ama düzenli pratik ile alışkanlık haline gelir. Bellek adreslerini görselleştirmeye çalışın ve küçük programlarla deney yapın. Pointer'ları anladığınızda C'nin tüm ileri konuları (dinamik bellek, fonksiyon işaretçileri, veri yapıları) çok daha kolay hale gelir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz