references c
C ++ 'da Referans Bildirme ve Kullanma Yollarını Tanıyın.
Referans, C ++ programlama dilinde ana kavramdır. İşaretçiler kadar güçlü olmasa da, onu verimli programlar yazmak için kullanmamıza izin veriyor. Referans değişkeninin ana kullanımı parametreleri fonksiyonlara geçirmektir.
Popüler 'referansla geçiş' parametre geçirme tekniği, referanslardan yararlanır. Bu eğitimde, bir referansın ne olduğunu ve nasıl beyan edilip kullanılacağını göreceğiz. Ayrıca, işaretçiler ve referanslar arasındaki farkları ve ayrıca bir referansın fonksiyonlara gönderilmesi ve geri döndürülmesini tartışacağız.
=> Tam C ++ Öğreticiler listesini Keşfetmek İçin Buraya Bakın.
Ne öğreneceksin:
- Referans Nedir?
- Referans Değişkenlerini Bildirme
- Referans Vs İşaretçiler
- Referansları İşlevlere Aktarma
- Geri Dönen Referanslar
- Sonuç
- Önerilen Kaynaklar
Referans Nedir?
Referans, bir değişken için bir takma ad veya başka bir addır. Tanımlayıcıya sahip bir değişken verildiğinde, bu değişkene orijinal adı veya başka bir adla başvurabilmemiz için bu değişkene başka bir tanımlayıcı sağlayabiliriz. Bu 'başka bir ad', Referans olarak adlandırılan şeydir.
17 değerine sahip bir 'i' değişkenimiz olduğunu düşünün. Eğer j bir referans ise, bu durumda i değişkeninin bellek temsili ve j referansı aşağıda gösterilmiştir.
Yukarıdaki şekilde gösterildiği gibi, bir değişken ve onun takma adı, yani aynı değeri referans gösterir.
Referans Değişkenlerini Bildirme
'&' Operatörü kullanılarak bir referans bildirilebilir.
Referans beyanı aşağıda gösterilmiştir.
int a = 10; int& refvar = a;
Yani yukarıdaki kodda 10 değerine sahip bir tamsayı değişkeni tanımladık. Sonra başka bir refvar değişkeni tanımlıyor ve ona bir değişken atıyoruz. Refvar'ı bildirirken, değişken adından hemen önce & operatörünü kullandığımıza dikkat edin. Bu, refvar'ın zaten var olan bir değişkene referans olduğunu gösterir.
'A' değişkenine a değişken adını kullanarak veya 'refvar' referans adını kullanarak başvurabiliriz.
l1 seviyesi için masaüstü desteği mülakat soruları ve cevapları
Aşağıda verilen basit bir Referans Örneği:
#include #include using namespace std; int main() { int age = 22; int& numYears = age; double salary = 10000.00; double& wages = salary; cout<<'Age: '< Çıktı:
Yaş: 22
NumYears: 22
Maaş: 10000
Maaş: 10000
Yukarıdaki kodda bir tam sayı değişkenimiz var. Daha sonra, yaş değişkenine bir referans tam sayı değişkeni numYears tanımlıyoruz. Double tipi başka bir değişken maaşımız var. Ardından, değişken maaşa çift referanslı değişken ücretler beyan ederiz.
Sonra, değişkenleri yazdırıyoruz, önce yaş, ardından referansını maaş ve referansı takip ediyor. Programın çıktısını kontrol edersek, değişkenin ve ona yapılan referansın aynı değere işaret ettiğini ve dolayısıyla Yaş ve yılların yanı sıra maaş ve ücretlerin de aynı değerlere sahip olduğunu anlarız.
Referans Vs İşaretçiler
İşaretçilerle karşılaştırıldığında referanslar daha güvenli ve kullanımı daha kolaydır.
İşaretçiler ve referanslar arasındaki birkaç farkı tartışacağız:
- İşaretçilerden farklı olarak, referansların boş değeri olamaz. Referansların kendisine bir değer atanması zorunludur.
- Referanslar oluşturuldukları anda başlatılır. Bunun aksine, işaretçiler herhangi bir zamanda başlatılabilir ve bildirim sırasında zorunlu olarak değil.
- İşaretçiler, değerlere kolaylıkla yeniden atanabilir. Ancak referanslarla bunu yapamayız. Değişkenin bir değeri atandığında, yani bir değişkenin takma adı oluşturulduktan sonra, bu referansa başka bir değişken atayamayız.
- Boş referanslarımız yok. Tanım olarak bir referans, değişken için bir takma addır ve yaratma sırasında başlatılır. Bu nedenle, geçersiz referansa sahip olma ve daha sonra ona somut bir veri türü olan bir değişken atama şansımız yoktur. Aksine, boşluk işaretçilerimiz olabilir.
Yukarıda tartışılan bu sınırlamalar nedeniyle, C ++ 'daki referanslar bağlantılı bir liste gibi veri yapılarıyla kullanılamaz. Lütfen Java'da tüm bu kısıtlamalara veya referanslara ilişkin sınırlamalara sahip olmadığımızı unutmayın.
Referansları İşlevlere Aktarma
Fonksiyonlarla ilgili önceki eğitimlerimizde, 'referansla geçiş' parametre tekniğini zaten tartışmıştık ve bu tekniği kullanarak iki sayı örneğinin değiş tokuşunu gördük. Bu bölümde bu tekniğin açıklamasını atlıyoruz ve sadece bir örnek olarak bir takas fonksiyonunu tekrar sunuyoruz.
Ama bu sefer sayıları değiş tokuş etmek yerine iki dizgeyi değiştireceğiz.
#include #include using namespace std; void swap(char * &str1, char * &str2) { char *temp = str1; str1 = str2; str2 = temp; } int main() { char *str1 = 'references'; char *str2 = 'pointers'; cout<<'str1 = '< Çıktı:
str1 = referanslar str2 = işaretçiler
Takas sonrası….
str1 = işaretçiler str2 = başvurular
Yani bu programda, dizeleri (char *) takas fonksiyonuna geçiriyoruz. Biçimsel parametreler, char * türünde bir değişkene yapılan iki referanstır. İki değer değiştirildiğinde, parametreler için referanslar / takma adlar kullandığımız için değiştirmelerinin çağıran işleve yansıdığını not ediyoruz.
Geri Dönen Referanslar
İşlevlerden işaretçiler döndürmek gibi, işlevlerden de referanslar döndürebiliriz. Bir işlevden dönen referanslar, aynı zamanda, dönüş değerine örtük bir işaretçi de döndürür. Bu nedenle atamanın sol tarafında referans döndüren bir fonksiyon kullanılabilir.
Bir fonksiyondan bir referans döndürmeye bir Örnek verelim.
#include using namespace std; int myarray() = {1, 0, 2, 3, 5}; int& setValues( int i ) //returns reference to the array { return myarray(i); } int main () { cout << 'myarray before change' << endl; for ( int i = 0; i < 5; i++ ) { cout << 'myarray(' << i << ') = '; cout << myarray(i) << endl; } setValues(1) = 1; setValues(3) = 8; cout << 'Value after change' << endl; for (int i = 0; i < 5; i++ ) { cout<< 'myarray(' << i << ') = '; cout << myarray(i) << endl; } return 0; }
Çıktı:
değişimden önce myarray
dizim (0) = 1
dizim (1) = 0
dizim (2) = 2
dizim (3) = 3
dizim (4) = 5
Değişimden sonraki değer
dizim (0) = 1
dizim (1) = 1
dizim (2) = 2
myarray (3) = 8
dizim (4) = 5
Aynısı için ekran görüntüsü aşağıda gösterilmiştir:
bir karakter dizgesine nasıl dönüştürülür c ++
Yukarıdaki kodda görüldüğü gibi, bir referans döndüren bir fonksiyon setValues ve bir tamsayı olan bir parametre tanımlıyoruz. İşlevin içinde, dizi referansını C ++ 'daki I konumuna döndürürüz.
Ana işlevde dizinin değerlerini yazdırıyoruz. Daha sonra setValues işlevini kullanarak dizideki iki öğenin değerlerini değiştiririz. Yine dizinin değerini yazdırıyoruz.
Referanslarla birlikte not etmemiz gereken bir şey, bir fonksiyonun yalnızca veri statik veya global olduğunda bir referans döndürebileceğidir. C ++ 'da yerel bir değişkene başvuru döndürmek yasa dışıdır.
Sonuç
Okuyucular, referansların ana kullanımının parametreleri fonksiyonlara geçirmek için olduğuna dikkat etmelidir.
Gelecek eğitimlerde, C ++ 'da nesne yönelimli programlamaya geçmeden önce C ++' daki lambda işlevlerini / ifadelerini ele alacağız.
=> En İyi C ++ Eğitim Öğreticilerine Buradan Göz Atın.
Önerilen Kaynaklar
- En İyi ÜCRETSİZ C # Eğitim Serisi: Yeni Başlayanlar İçin En İyi C # Rehberi
- C ++ 'da İşaretçiler ve İşaretçi İşlemleri
- HP LoadRunner Öğreticileriyle Yük Testi
- C ++ 'da Değişkenler
- C ++ 'da Nesne Tabanlı Programlama
- Unix Borular Eğitimi: Unix Programlamada Borular
- C ++ 'da Kitaplık İşlevleri
- ÜCRETSİZ C ++ Programlamayı Öğrenmek İçin 70+ EN İYİ C ++ Öğreticisi