« POINTER NEDİR?
POINTER VE ARİTMETİK »


POINTER NASIL TANIMLANIR

Posted by admin on May 19, 2008

Pointer Nasıl Tanımlanır ?

Programin ucuncu satirinda, ilk once “index” isimli degisken tanimlanir, daha sonra da iki tane pointer tanimlamasi goreceksiniz. Ikinci tanim, su sekilde okunabilir: “pt1′in gosterecegi adres, bir tamsayi degiskenine ait olacak.” Yani, “pt1″, tamsayi bir degiskeninin pointer’i olur. Ayni sekilde, “pt2″ de, yine bir tamsayi degiskeninin pointer’i olur.

Bir pointer, bir degiskenin adresini tasimak icin tanimlanir. Tanimlandigindan baska bir degisken tipi icin kullanimi “uyumsuz veri tipi” hatasinin olusmasina sebep olur. Ornegin, “float” tipi bir pointer, “int” tipli bir degiskenin adresini alamaz.

main()
{
char katar[40],*orada,bir,iki;
int *pt,list[100],index;

strcpy(katar,“Bu bir karakter kataridir.);

bir = katar[0]; /* bir ve iki ayni degeri tasirlar */
iki = *katar;
printf(“Ilk cikti %c %c\n”,bir,iki);

bir = katar[8]; /* bir ve iki ayni degeri tasirlar */
iki = *(katar+8);
printf(“Ikinci cikti %c %c\n”,bir,iki);

orada = katar+10; /* katar+10 ve katar[10] aynidir. */
printf(“Ucuncu cikti %c\n”,katar[10]);
printf(“Dorduncu cikti %c\n”,*orada);

for (index = 0;index < 100;index++)
list[index] = index + 100;
pt = list + 27;
printf(“Besinci cikti %d\n”,list[27]);
printf(“Altinci cikti %d\n”,*pt);
}

Bu programda, iki tane pointer, iki tane dizi ve uc tane degisken tanimliyoruz. “orada” isimli pointer, karakter tipi, ve “pt” ise, tamsayi tipindedir.

Bir Katar Değişkeni Aslında Pointerdır.

C programlama dilinde, bir katar degiskeni, o katarin baslangicini gosteren bir pointer olarak tanimlanmistir. Programda bir bakin: once “katar” isimli diziye sabit bir katar atiyoruz. Daha sonra, “bir” isimli degiskene, “katar” in ilk harfini atiyoruz. Sonra, “iki” isimli degiskene, ayni degeri atiyoruz. Ikinci satirda “*katar[0]” yazmak yalnis olurdu, cunku yildiz isareti, koseli parantezlerin yerini almaktadir.

“katar” i neredeyse tam bir pointer gibi kullanabilirsiniz, yegane farki, tuttugu adres degistirilemez, ve daima o katarin baslangic adresini gosterir.

Onkinci satira gelince, katarin dokuzuncu karakterinin (sifirdan basladigimiz icin), iki ayri sekilde “bir” ve “iki” isimli degiskenlere atandigini goruyoruz.

C programlama dili, pointer’in tipine gore, index ayarlamasini otomatik olarak yapar. Bu durumda, “katar” bir “char” olarak tanimlandigi icin, baslangic adresine 8 eklenir. Sayet “katar” “int” (tamsayi) olarak tanimlanmis olsa idi, index iki ile carpilip, “katar” in baslangic adresine eklenirdi.

“orada” bir pointer oldugu icin, 16. satirda “katar” in 11. elemaninin adresini tasiyabilir. “orada” gercek bir pointer oldugu icin, herhangi bir karakter degiskeninin adresini gosterebilir.

1 Comment »

High Interest Savings:

must be joking me

August 31st, 2010 | 4:08 pm
Leave a Reply

Comment