Sungurbey Anadolu Lisesi
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Sungurbey Anadolu Lisesi

Sungurbey Anadolu Lisesi Paylaşım Merkezi
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

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

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


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

Bilgisayardershanesi.com --> C++ İsaretçiler Empty
MesajKonu: Bilgisayardershanesi.com --> C++ İsaretçiler   Bilgisayardershanesi.com --> C++ İsaretçiler Icon_minitimePerş. 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
http://sungurbey.hareketforum.com
 
Bilgisayardershanesi.com --> C++ İsaretçiler
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Bilgisayardershanesi.com --> C++ İsaretçiler Ve Diziler
» Bilgisayardershanesi.com --> C++ İsaretçiler Ve Fonsiyonlar

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