C Dili - Ders 25 - Pointer Aritmetik



bu yazımızda pointer aritmetik konusuna değineceğiz. Pointerlar bildiğiniz gibi adresleri gösterir. integer türünde bir pointer 1002 adresini gösteriyorsa; pointerın adresini bir artırırsak (pointer++) 1006 adresini göstercektir. Sebebi integer türünün 4 byte alan kaplamasıdır. Şimdi Bunu bir örnekle görelim.

int degisken=10;
int* p=°isken;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;

Yukarıdaki örneği bir de char ve float türleriyle deneyin.

Yukarıda yaptığımız adresleri bir arttırmaktı. Pointerın gösterdiği değişkeni bir artıralım.

*p++;
printf("Degiskenin degeri:%d\n",*p);

Pointerları biraz daha işe yarar bir şeyde kullanalım. Bir dizi oluşturalım ve dizinin ilk elemanının adresini pointer göstersin. Daha sonra pointer ile dizinin bütün elemanlarını ekrana yazdıralım.

#include "stdio.h"
#include "stdlib.h"

int main()
{
  int dizi[5]={1,2,3,4,5};
  int* pointer=dizi; //dizinin ilk elemaninin adresi
  int i=0;
  while(i<5)
  {
   printf("eleman %d:%d - Adresi:%d\n",i,*pointer,pointer);
   pointer++;
   i++;         
  } 
  return 0;
}