Pointers

Kategori: C , 23 Haziran 2019 , JanFranco


Pointerları basitçe anlatmak gerekirse, göstericilerdir. Kendisine atanan değişkeni gösterir. Yıldız (*) işareti ile tanımlanır. Örnek üzerinden anlatmak gerekirse:

int main(){
    int i = 10;
    printf("The value of i is %d, and its address is %p\n", i, &i);
    return 0;
}

i adında bir integer değişken tanımladık ve değerini 10 olarak atadık. Daha sonra %d ile i değişkeninin decimal değerini, %p değişkeni ile i değişkeninin adres değerini ekrana bastırdık. Ekrana basılan yazı aşağıdadır:

The value of i is 10, and its address is 0xbffff964

Bellekte i değişkeni bir kutucuğun içerisine yerleştirildi şeklinde düşünürsek o kutucuğun id'si yani adress'i 0xbffff964 şeklindedir. Kutucuğun içerisindeki değer de 10'dur. Pointerları kullanarak bir değişkenin değerini o değişkene müdahale etmeden değiştirebiliriz. Örnek görelim:

 

int main(){
    int i;
    int *p;
    
    p = &i;
    i = 10;
    *p = 20;
    
    printf("i is %d\n", i);
    printf("i is %d\n", *p);
    
    return 0;
}

Burada i adında bir integer ve p adında bir integer-pointer tanımladık. Pointer'a i değişkeninin adresini atadık. Böylece *p, an itibariyle i değişkenini işaret etmekte. i'yi 10 olarak atadık. *p'yi de 20 olarak atadık. *p, i değişkenini gösterdiğinden burada *p'yi değiştirerek aslında i değişkenini değiştirmiş olduk. Böylece ekrana 10, 20 yerine 20, 20 basılmış oldu.


Sonraki Yazı: Passing Pointers as Parameters
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın