4 Aralık 2018 Salı

Pointer (İşaretçi)

Pointer (İşaretçi)

Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünebilir.Bir değişken tanımlandığında , bellek bloğundan gerekli miktarda hücre,ilgili değişkene ayrılır.Gereken hücre adedi , değişken tipine göre değişir.C dilinde bir değişkenin ana bellek üzerinde nerede olduğunu öğrenebilirsiniz.Değişken deklare edildiği anda ana bellek üzerinde değişkenin türüne göre uygun bellek gözleri tahsis edilir.

Bir değişkene değer atandığında ,aslında bellek gücreleri değiştirilmiş olur Ancak bellek hücreleri direkt olarak değiştirelemez değişkenler aracılığıyla değiştirebilir.Bellek hücrelerine direkt müdahale Pointer'lar sayesinde gerçekleşir.
Değişkenler değer (sayı,karakter vs..)tutar. Pointer'lar ise adres tutan değişkenlerdir.Poiinterlar Bellek adreslerini tutarlar.

ÖNEMLİ : ---Pointer tanımlamak oldukça basittir.Sadece değişken adının önüne '*' işareti getirilir.Dikkat edilmesi gereken tek nokta;pointer', işaret edeceği değişken tipine uygun tanımlamaktır.---
Değişkenlerin tanımlanıdğı sırada göz ayrıldığını düşünsekte sıralı olarak tahsil edecek diye bir kural yoktur.
Rasgtege Okuyabilir veya yazabilir (RAM Random Acces Memory).
-------------------------
POİNTER KAVRAMINI ANLAMAK İÇİN PROGRAM
#include <stdio.h>
int main(void)
{
int xyz=10,k;
printf("xyz = %d\n",xyz);
int*p; 
 //p integer türünde degiskenlerin adrslerini saklayabilir.
printf("p = %d\n",p);
p=&xyz;
// xyz nin adresini artık p gösterecek
printf("p = %d\n",p);
k=*p;
// p nin gösterdigi hücrenin degerini k ya ata k=xyz olacak.
printf("k = %d\n",k);
*p=2200;
//p nin gösterdiği hücrenin degerini 2200 yap. p xyz nin adresini
//gösterdigi icic artık xyz nin degeri 2200 olur.
printf("xyznin degeri = %d\n",xyz);
k=4;
*p=k;
printf("xyznin degeri = %d\n",xyz);
getch();
}
------------------------


0 yorum:

Yorum Gönder