Sungurbey Anadolu Lisesi

Sungurbey Anadolu Lisesi Paylaşım Merkezi
 
AnasayfaSSSAramaÜye ListesiKullanıcı GruplarıKayıt OlGiriş yap

Paylaş | 
 

 Bilgisayardershanesi.com --> C++ İsaretçiler

Önceki başlık Sonraki başlık Aşağa gitmek 
YazarMesaj
Admin
Admin
avatar

Mesaj Sayısı : 54
Kredi : 135147
Kayıt tarihi : 15/05/10
Yaş : 23
Nerden : Adana

MesajKonu: Bilgisayardershanesi.com --> C++ İsaretçiler   Perş. Mayıs 20, 2010 11:51 am

Isaretçilere Giris

Isaretçiler (Pointers) ve bundan önce görmüs oldugumuz diziler (Arrays) ilerde yapacagimiz uygulamalarda kullanimina kesin ihtiyaç duyacagimiz basliklardir. Bunlar bize dinamik bellek kullanimini saglarlar. Dinamik bellek kullanimindan bahsedecek olursak, bellegimizin kutucuklardan olustugunu hayal edin. 100 kutucuklu bir bellegimiz var. Bu kutucuklarin her birinin bir adresi vardir ve biz de bu adresler yolu ile kutucuklara erisiriz. Iste isaretçiler bu erisimi sagliyor. Bu konuya çalisirken, anlamanin gayet kolay oldugunu göreceksiniz. Fakat ben sizi uyarayim, en kolay konular en çok hata yapilanlardir. Isaretçilerde yapilan hatalar programin hatta sistemin çökmesine sebep olabilir, ayni zamanda yapilan hatalari kolay kolay bulamayabilirsiniz. Büyük projelerde bu sizi bayagi sikintiya sokacaktir. Onun için isaretçiler konusunda, kullanim teknigi hakkinda size sik sik tavsiyelerde bulunacagim.

Isaretçilerin Tanimlanmasi ve Deger Atanmasi

Bir isaretçi tipi, hangi tipe isaret ettigini belirten ve birer adres degeri içeren verilere sahiptir. Bir isaretçi degisken bildirimi, açik olarak hangi tip veriyi kullanacagini bildirerek baslar. Derleyicimizde * isareti ile isaretçi degiskeni tanimladigimizi anlar.

<tip> *<isaretçi adi>; Seklinde yazilir. Örnegin, int *IsaretciAdi;

Simdi de ayni satirda birden fazla isaretçi tanimlayalim.

Int *is1, *is2, *is3;
Seklinde tanimlayabiliriz. Benim size tavsiye ettigim budur. Fakat farkli bir yol olarak da (Int *) is1, is2, is3; seklinde de yazilabiliriz. Burda dikkat etmemiz gereken olay ise, int tipinde isaretçileri tanimlarken herhangi bir degiskende tanimlarsak (int *) seklinde tek satirda yapmamiz hatalidir.

(Int *) is1, is2, is3, x=4; //hata
int *is1, *is2, *is3, x=4; //dogru
Sanirim ne demek istedigimi anladiniz:).

Daha önce görmüs oldugumuz "&" adres operatörünü hatirlayalim, kendisisinden sonra gelen ifadenin adresini gösterir.

Int x;
Int *is1=&x;
x i tanimladik, sonra is1 isaretimize x in adresini atadik. Kisaca is1 in gösterdigi adresteki deger diye biliriz:)

#include <iostream.h>
#include <string.h>

int main(void)
{
char *is1="deneme";
int index;
for(index=(strlen(is1)-1); index>=0; index--)
cout<<is1[index]<<endl;

cout<<"\n"<<is1;

return 0;
}

Programin çiktisi
---------
e
m
e
n
e
d

deneme
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://sungurbey.hareketforum.com
 
Bilgisayardershanesi.com --> C++ İsaretçiler
Önceki başlık Sonraki başlık Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Türk Matematikçiler

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Sungurbey Anadolu Lisesi :: Yazılım :: C ve C++-
Buraya geçin: