C – Pointer
Pointerlar bir degişkenin veya tanımladığınız bir şeyin tuttuğu adresi gösterir. Örnek vermek gerekirse mesela diyelim a =5 dediniz a nın bu programlama içerisinde bir yeri , adresi olması lazım bu pointer olarak tanımlanıyor , o adresi girdiğiniz zamanda tanımlamış olduğunuz a ‘ nın değeri ekrana basılıcaktır. a’nın pointeri yani adresini görebilmek için * işaretini ve p harfini kullanırız yani a nın adresini görmek için a yı şu şeklide tanımlamalıyız : *ap dir. Eğer a yı integer(int) veya başka bir şekilde tanımladıysanız pointerınıda aynı şekilde tanımlamalısınız. Pointerları ekrana bastırabilmeniz içinde %u veya %p sembollerini yazmanız gerekir.
Yapacağım programda bir integer tanımlayacağım ve bu tanımlamış olduğum integerin adresini ekrana bastıracağım . Kod dizimi;
#include<stdio.h> int main() { int a = 5 , *ap; ap=&a; printf("a=%d\n",a); printf("A nin adresi = %u",ap); return 0; }
Herkes de pointerın tuttuğu yer farklı olabilir yani sonucunuz farklı olabilir.
Ekran Çıktısı;
a=5 A nin adresi = 6487620
Şimdi ise oluşturacağım programda integer , float , char , double ve array tanımlayacağım ve bunların bilgisayarda tuttukları adresi ekrana bastıracağım. Kod dizimi;
#include<stdio.h> int main() { int a = 5 , *ap; float b = 12.5 , *bp; char c='e', *cp; double d =14.5486 , *dp; int array[4] ={1,2,6,4}; int *arrayp; ap=&a; bp=&b; cp=&c; dp=&d; arrayp=&array[2]; printf(" a = %d sayisinin adresi %u\n",a,ap); printf(" b= %f sayisinin adresi %u\n",b,bp); printf(" c= %c harfinin adresi %u\n",c,cp); printf(" d= %lf sayisinin adresi %u\n",d,dp); printf(" array = %d sayisinin adresi %u\n",array,arrayp); return 0; }
Ekran Çıktısı ;
a = 5 sayisinin adresi 6487588 b= 12.500000 sayisinin adresi 6487584 c= e harfinin adresi 6487583 d= 14.548600 sayisinin adresi 6487568 array = 6487552 sayisinin adresi 6487560