C’de Pointer Aritmetiği – Fonksiyona Pointer Geçirme

Fonksiyonel programlamaya uygun olarak tasarlanacak bir programda şüphesiz ki pointer’lar da fonksiyon trafiğinden nasibini alacaktır. Çok da mantığına inmeden basitçe bunu nasıl yapabileceğimizi göstereyim;

Örneğin bir sayacımız olsun.Amacımız da bu sayacı main fonksiyonu dışında bir fonksiyonda arttırıp, main’e geri döndürmek ve değerinin değişmesini sağlamak olsun.

Bu işlemi pointer kullanmadan, değişkeni global tanımlayarak da sağlayabilirsiniz.


#include <stdio.h>
#include <stdlib.h>

void deger_arttir(int *);
int main()
{
 int i;

int sayac = 0;

int *ptr_sayac;

ptr_sayac = &sayac;//Pointer 'sayac' degiskeninin adresini gosteriyor...

//Sayac degiskeni ile islem yapilmadan, fonksiyona sayac degiskeninin pointeri gonderiliyor ve deger arttirma islemi yapiliyor...
 for(i=0;i<10;i++)
 {
 deger_arttir(ptr_sayac);
 printf("Sayacin yeni degeri: %d\n",sayac);
 }
 return 0;
}

void deger_arttir(int *degiskene_ait_pointer) //Disaridan integer deger tutan bir hucreyi isaret eden pointer alinip, degeri arttiriliyor...
{
 *degiskene_ait_pointer += 1;
}

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: