Subscribe For Free Updates!

We'll not spam mate! We promise.

gösterici etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
gösterici etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Mart 2015 Çarşamba

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

C Dili - pointer to pointer



C dilinde pointerları başka pointerlarda gösterebilir. Aşağıdaki kodda p pointerını q pointerı gösteriyor ve p pointerı da x değişkenini gösteriyor.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int x, *p, **q;
x = 10;
p = &x;
q = &p;
printf("%d\n", **q);
printf("%d\n", q);
printf("%d\n", p);
printf("%d\n", *q);
printf("%d\n", *p);
return 0;
}

Haberci

Destek3

Related Posts Plugin for WordPress, Blogger...