dizi ve pointerlaripointer aritmetiği etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
dizi ve pointerlaripointer aritmetiği etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Haziran 2011 Salı

C Dili - pointer to pointer

Posted by Unknown On 11:30

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

C Dili - pointer to pointer

Posted by Unknown On 11:30

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

13 Haziran 2011 Pazartesi

C Dili - Ders 26 - Pointer ve Fonksiyonlar

Posted by Unknown On 13:45

Bu dersimizde pointerlarla fonksiyonlar nasıl kullanılır onu görecez. Örneğin dışarıda bir dizi tanımlayalım ve dizisirala adında bir fonksiyonumuz olsun. fonksiyona dizinin ilk adresini ve boyutunu gönderelim ve dizi elemanlarını ekrana sıralayalım.

#include "stdio.h"
#include "stdlib.h"

void dizisirala(int *pointer,int boy){
int i=0;
while(i<boy){
printf("%d\n",*pointer);
pointer++;
i++;
}
}

int main()
{
int dizi[10]={1,2,3,4,5,6,7,8,9,0};
dizisirala(dizi,10);
return 0;
}

C Dili - Ders 26 - Pointer ve Fonksiyonlar

Posted by Unknown On 13:45

Bu dersimizde pointerlarla fonksiyonlar nasıl kullanılır onu görecez. Örneğin dışarıda bir dizi tanımlayalım ve dizisirala adında bir fonksiyonumuz olsun. fonksiyona dizinin ilk adresini ve boyutunu gönderelim ve dizi elemanlarını ekrana sıralayalım.

#include "stdio.h"
#include "stdlib.h"

void dizisirala(int *pointer,int boy){
int i=0;
while(i<boy){
printf("%d\n",*pointer);
pointer++;
i++;
}
}

int main()
{
int dizi[10]={1,2,3,4,5,6,7,8,9,0};
dizisirala(dizi,10);
return 0;
}

C Dili - Ders 25 - Pointer Aritmetik

Posted by Unknown On 10:29

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 - Ders 25 - Pointer Aritmetik

Posted by Unknown On 10:29

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