Bu yazıda da, bir önceki yazıda giriş yaptığımız ve olası hatalardan kısaca söz ettiğimiz pointerlar ile atama işlemleri konusuna devam edeceğiz.
Bu ana kadar, pointer kullanarak yapılan işlemlerde izlenecek genel yöntemlerin kavranılmış olduğunu umuyorum. Şimdi, bu yöntemleri kullanarak, bir integer dizisi tanımlayalım. Bu dizi üzerinde gezmek için bir pointer tanımlayalım ve dizimize belli bir kurala göre değer ataması yapalım…
<h1>include <stdio.h></h1> <h1>include <stdlib.h></h1> int main() { int dizi[10]; int i; //Bir dizi veya matrisin adresini bir pointer'a atamak için o dizinin veya matrisin adini yazmak yeterlidir. //Bir dizi veya matrisin adi, ilk elemaninin adresini gosterir… int *dizi_gezici_ptr; dizi_gezici_ptr = dizi; //Pointer artik dizinin ilk elemanini gosteriyor… <pre><code>//Simdi dizimizin elemanlarina deger atamak icin kullanacagimiz kurala gore dizimizi pointer ile gezip guncelleme yapalim... for(i=0;i<10;i++) { *dizi_gezici_ptr = i*5; dizi_gezici_ptr++; } //Eger islemimizde bir hata yoksa, dizimizin elemanlari 0 dan itibaren 5 artarak devam edecektir... //Dizimizi yazdirip degerleri kontrol edelim... dizi_gezici_ptr = dizi; //Pointeri yeniden ilk elemana dondurduk... for(i=0;i<10;i++) { printf("Diziye dogrudan erisim ile %d. elemanin degeri: %d\n",i,dizi[i]); printf("Pointer uzerinden erisim ile %d. elemanin degeri: %d\n",i,*(dizi_gezici_ptr+i)); printf("\n"); } return 0;</code></pre> }
Görüldüğü gibi pointer kullanarak bir diziyi gezdik, dizi elemanlarının değerlerini güncelledik ve diziyi yine pointer kullanarak yazdırdık.
Bir sonraki yazıda, pointer kullanarak tek ve çok boyutlu dizilerde arama algoritmaları geliştirme konusu üzerinde duracağız…