Görev
İki değişkenin değerlerini değiştiren bir prosedür yazın.
Bu görevin özelliği, çağıran program tarafından bilinmek için prosedürde yapılan değişikliklere ihtiyaç duymamızdır.
Prosedürü şu şekilde yazmaya çalışalım:
void Swap ( int a, int b ) // prosedür parametrelerinin böyle bir açıklaması ile,
{ // argümanların (x ve y) değerleri kopyalanacak,
int c; // a ve b değişkenleri, x ve y ile ilgili olmayan bağımsız değişkenlerdir
c = bir; bir = b; b=c;
}
ana()
{
int x=1, y=2;
Değiştir(x, y); // x ve y değişkenlerinin (argümanlar) değerleri a ve b parametrelerine kopyalanır
cout
Bu programı çalıştırırsanız x
ve y
değişkenlerinin değerlerinin değişmediğini görebilirsiniz. Parametrelerin bağımsız değişkenlerin değerlerini değiştirmesi için verileri referansa göre iletmeyi kullanmalısınız.Bunu yapmak için veri türünün adından sonra alt programın başlığına & code> ("ve işareti") işaretini koymalısınız.
geçersiz Değiştirme ( int & a, int & b ) // şimdi a ve b değişkenleri bellekteki x ve y değişkenlerinin adreslerini alıyor
{
int c;
c = bir; bir = b; b=c;
}
Kullanım: Bir bağımsız değişkeni referans olarak iletirseniz, prosedür çağrılırken bu yerde yalnızca değişken adı (bir sayı ve bir aritmetik ifade DEĞİL) bulunabilir!< br />
Şunun gibi bir prosedür ÇAĞRILAMAYIN:
Swap(x, 4 );
Swap(5+x, y);