Serap Şen

Bilişim hakkında herşey…

C++ dersi 4-Referanslar ve Referans Parametreleri

Birçok programlama dilinde fonksiyonları çağırmanın 2yolu vardır:
-değere göre çağırma
-referansa göre çağırma
Bir argüman değere göre çağırma ile geçirildiği zaman,argümanın değerinin kopyası üretilir ve çağırıcı fonksiyona gönderilir.Kopya üzerinde yapılan değişiklikler orjinal değişkenin çağırıcı içindeki değerini değiştirmez.
Bir referans parametresi kendisine karşılık gelen argüman için takma bir addır.Bir fonksiyon parametresinin referans ile geçirildiğini belirtmek için fonksiyon prototipinden sonra & konur.Örneğin;
int &sayı bildirimi “sayı bir inte referanstır”şeklinde telaffuz edilir.
Aşağıdaki örneği inceleyelim:
#include
using namespace std;

int degerIleKare(int);
void referansIleKare(int&);
int main()
{
int x=2,z=4;
cout<<”degerilekareden once x:” << x << “n”
<<”degerilekarenin geri dondurdugu deger:” << degerIleKare(x)<< endl;
cout<<”referansIleKareden once z:” << z<< “n”;
referansIleKare(z);
cout<<”referansilekareden sonra z:” << z << endl;
return 0;
}
int degerIleKare(int a)
{
return a*=a;
}
void referansIleKare(int &b)
{
b*=b;
}

Çıktısı:
degerilekareden once x:2
degerilekarenin geri dondurdugu deger:4
referansIleKareden once z:4
referansilekareden sonra z:16
şeklindedir.
ya da
#include
using namespace std;

int main()
{
int x=3,&y=x; //y şimdi x için takma addır.
cout<<”x=”<< x << endl <<”y=” << y << endl;
y=7;
cout<<”x=”<< x << endl <<”y=” << y << endl;
return 0;
}

Çıktısı:
x=3
y=3
x=7
y=7
Notlar:
Referansa göre çağırma büyük miktardaki verinin kopyalanması sorununu ortadan kaldırdığından performans açısından iyi bir yoldur.

Tags: , , , ,


Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Follow Me

Microsoft Imagine Cup 2012 Repharm Project

Makalelerimi takip edebilirsiniz…

Arşivlerim

Readmee E-dergimiz

Anketler

Web Sitemi Beğendin mi?

  • Kötü (24%, 35 Votes)
  • Fena değil (8%, 12 Votes)
  • İdare eder (10%, 15 Votes)
  • İyi (18%, 27 Votes)
  • Çok iyi (40%, 57 Votes)

Total Voters: 146

Loading ... Loading ...

Kaç Kişi Online?