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; }