Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Ahmet Faruk Nacaroğlu
http://www.csharpnedir.com/
İletişme geçmek için
tıklayın
.
40
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
C++ / C++.NET
Ahmet Faruk Nacaroğlu
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
C++ / C++.NET
Yayınlanma Tarihi
:
19.10.2002
Okunma Sayısı
:
25770
Yorum Sayısı
:
0
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Turhal Temizer
Conda install environment.yml Package
23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA
23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak
23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi
23.11.2024
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
C++ / C++.NET
/
C++'da Göstericilere Giriş
C++'da Göstericilere Giriş
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
Bu makalemizde C++ dilindeki göstericiler (pointer) konusunu ele alacağız. Göstericiler C ve C++ dillerinin en zor konusu olarak ün salmışlardır. Ama konu üzerinde biraz çalışırsak ve göstericileri kullanırken dikkatli olursak gerçekten de programlarımızın hızını oldukça artıran araçlar olarak karşımıza çıkarlar.
Normalde bir değişken tanımladığımızda aslında sadece o değişkene hafızada yer ayırmış oluruz. Bu değişken ismiyle değişkenimizin hafızadaki yerine ulaşabiliriz. Değişken ismiyle değişkene ulaşmaya direkt referans (directly referance) denir. Göstericiler ise bir değişkenin hafızadaki yerini saklarlar. Bu şekilde göstericinin işaret ettiği değişkene de ulaşabiliriz. Buna dolaylı referans (indirectly reference) denir. Aşağıdaki şekilde direkt ve dolaylı referanslar gösterilmiştir.
Göstericileri tanımlamak ile diğer değişkenleri tanımlamak arasında küçük bir fark vardır. Göstericileri tanımlarken değişken isminden önce * işareti konur:
int *sayiPtr, sayi;
Yukarıda tamsayı tipinde bir gösterici bir de normal değişken tanımladık. Aynı satırda birden fazla gösterici tanımlarken herbirinin önüne ayrı ayrı * işareti koymamız gerekir. Aksi halde sadece ilk değişkenimiz gösterici olur. Birden fazla göstericiyi aynı satırda şöyle tanımlarız:
char *aPtr, *bPtri;
C++'da göstericiler için iki tane işleç(operator) kullanılır. Bunlardan birincisi:
&
adres işlecidir. Adres işleciyle gösterici ile aynı tipteki bir değişkenin adresine ulaşabiliriz.
int sayi=9;
int *sPtr;
sPtr=&sayi;
Yukarıdaki kodun ilk satırında bir tamsayı değişkeni tanımladık ve ona 9 değerini atadık. İkincisinde tamsayı tipinde bir adres tutmak için
sPtr
göstericimizi tanımladık. Son satırda ise
sayi
değikenimizin adresini
sPtr
değişkenimize yükledik. Artık
sPtr
,
sayi
değişkenini gösteriyor deriz. Son satırı çizim olarak şöyle gösterebiliriz.
sayi
değişkenimizin bilgisayarın hafızasında 1800 adresli yerde saklandığını düşünelim.
sPtr
göstericisinin ise hafızadaki yeri 2300 olsun. Yukarıdaki kodun son satırı çalıştıktan sonra
sPtr
'nin içerisindeki değer 1800 olur. Değişkenlerimizin son durumları şöyle olacaktır:
Diğer gösterici işlecimiz
*
'dir ve dolaylı referans işleci olarak bilinir. Bu işleç, kendisinden sonra gelen göstericinin gösterdiği değişkenin değerini döndürür. Aşağıdaki kod parçasını incelersek:
cout << *sPtr << endl;
bu kod ekrana sayi değişkenimizin değeri olan 9'u yazdırır. Çünkü,
sPtr
göstericisi
sayi
değişkenini işaret ediyor ve
*sPtr
ifadesi ile
sPtr
göstericisinin işaret ettiği değişkene ulaşıyoruz. Dolaylı referans işlecimiz ile ayrıca, göstericinin gösterdiği değişkenin değerini de değiştirebiliriz :
*sPtr=23;
cout<< *sPtr << endl;
cout<< sayi << endl;
Yukarıdaki kod parçasında önce
sPtr
göstericisinin gösterdiği değişkenin (yani "
sayi
" değişkenini) değerini 23 yaptık. Sonraki satırda
sPtr
göstericisinin gösterdiği değişkenin değerini ekrana yazdırdık. Son olarak
sayi
değişkenin değerini ekrana yazdırdık. Son iki satırda bulunan kodlar ekrana aynı değerleri yani 23 değeri basacaktır. İlerleyen yazılarımızda, C++'da göstericilerin dizilerle nasıl kullanılacağını ve fonksiyonlara göstericileri nasıl parametre olarak geçireceğimiz gibi göstericilerle ilgili ileri düzeyde işlemler hakkında bilgi vermeye çalışacağım.
Makale:
C++'da Göstericilere Giriş C++ ve C++.NET dili Ahmet Faruk Nacaroğlu
Yazılan Yorumlar
Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl