Genel biçimi:
Â
<tür> &<referans_ismi> = <nesne>
Â
Örnek:
Â
int a = 10;
int &b = a;
Â
double x;
……….
double &y = x;
Â
Bir referans ilk değer verilerek tanımlanmak zorundadır. Örneğin:
Â
int &r;                        /*        hata    */
double &r = 10.2;      /*        hata    */
Â
Referansa verilen ilk değer aynı türden bir nesne olmak zorundadır.
Â
double x = 10 ;
int &r = x;      /*        Hata. Farklı türden bir nesneyle ilk değer verilmiş. */
int &r = a;      /*        Okunuşu: r int türünden bir referanstır         */
Â
Referanslar bir çeşit düzeyi yüksek göstericidir. Referansların içerisinde adres bilgisi bulunur. Derleyici bir referans tanımlandığında ilk değer olarak verilen nesnenin adresini referansın içerisine yerleştirir. Referansları iyi anlayabilmek için onların eşdeğer gösterici karşılıklarını düşünmek gerekir. Eş değer gösterici karşılığı referans yerine gösterici kullanıldığında elde edilecek eş değer kod anlamına gelir.
Â
int a = 10;
int &b = a;
Â
Eşdeğer karşılığı:
Â
int a = 10;
int *b = &a;
Â
Bir referans ilk değer verildikten sonra kullanıldığında artık referans içerisindeki adres değil referans içerisindeki adreste bulunan bilgi temsil edilir.
Â
Â
/*———-fark11.cpp————–*/
Â
#include <stdio.h>
Â
#if 1
Â
void main(void)                    /*        referans kullanımı      */
{
   int a = 10;
   int &b = a;
Â
   b = 50;
   printf(“%d %d\n”, b, a);
}
Â
#endif
Â
#if 0
Â
void main(void)                    /*        referansın gösterici karşılığı  */
{
   int a = 10;
   int *b = &a;
Â
   *b = 50;
   printf(“%d %d\n”, *b, a);
}
Â
#endif
/*————————————-*/
Â
int a = 10;
int &b = &a;              /*        Hata: &a int türünden değil adres türündendir        */
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.