10 Temmuz 2014 Perşembe

Pointerlara yeni başlayanlar için bir örnek


#include<stdio.h>
#include<conio.h>


int main()
{
int x=500,*y;

y=&x;
 
 printf("%d\n",x);
  printf("%d\n",&x);
    printf("%d\n",y);
     printf("%d\n",&y);
      printf("%d\n",*y);
    
 getch();  
}



Yukarıdaki örneği resimle birlikte açıklayalım...

Programda bir değişken tanımladığımızda bu değişken RAM de kendine bir yer ayırır.Örneğin programda
 int x=500; şeklinde bir değişken tanımladık. Bu yukardaki resimde olduğu gibi bir adreste kendine yer ayırır.A burada x in adresi olur. A değerini bilgisayar kendi atar.
  Bize y=&x   ifadesi verilmiştir. Bu bize x in adresinin y ye eşit olduğunu gösterir.  "& " bu işaret x değerinin adresini ifade eder.  Yani böylece  y   2. resimdeki gibi A nın adresine eşit olmuş olur.
printf("%d\n",x);  Bu ifadede x in değerini yazdırdık.
printf("%d\n",&x); Bu ifadede x in adresini yazdırdık.
printf("%d\n",y);  Bu ifadede y nin değerini yazdırdık. 
printf("%d\n",&y); Bu ifadede y nin adresini yazdırdık.
printf("%d\n",*y); Bu ifadede y nin pointer değerini yazdırdık. Peki bu denir?   y en başta int *y; olarak tanımlandı. " * " işareti y nin pointer olduğunu      gösterir. Bu değer y nin değerinin (A nın) RAM deki bir adresin değeridir. Yani A adresindeki değer 500 olduğundan *y de 500 olur.
NOT: x in pointerini bulamayız çünkü x pointer olarak tanımlanmamıştır.

Hiç yorum yok:

Yorum Gönder