next up previous contents index
Nächste Seite: 7. Funktionen Aufwärts: 6. Zeiger Vorherige Seite: 6.5 Zeiger auf Strukturen   Inhalt   Index


6.6 Referenz

Eine Referenz ist ein Alias (Pseudoname) für eine Variable und kann genauso wie diese benutzt werden. Referenzen stellen (im Gegensatz zu Zeigern) kein eigenes Objekt dar, d.h., für sie wird kein zusätzlicher Speicher angefordert.

//	Reference
//	i, ri, *pi are different names for one variable
#include <iostream.h>
main()
{
 int   i;		// i
 int &ri = i;		// declaration reference on i
 int *pi;
 
 pi = &i;		// declaration pointer on i;
 
 i = 7;
 cout << i << ri << *pi;
 
 ri++;
 cout << i << ri << *pi;
 
 (*pi)++;
 cout << i << ri << *pi;
}

Referenzen werden häufig zur Parameterübergabe an Funktionen benutzt, siehe § 7.2. Eine weitere sinnvolle Anwendung besteht in der Referenz auf ein Feldelement, Strukturelement oder auf innere Daten einer komplizierten Datenstruktur wie nachstehend, vom Beispiel auf Seite [*] abgeleitet, gezeigt wird.

//	Reference and dynamical array of type student
#include <iostream.h>
main()
{
 struct Student
  {
    long long int matrikel;
              int skz;
              char name[30], vorname[20];
  };

 Student gruppe[4];        // pointer at Student
//			Data input; 
 ...
 
 i = 3;
 {
//		reference on comp. of structure
   int           &rskz = gruppe[i].skz;
//		reference on structure
   Student       &rg   = gruppe[i];
//		reference on comp. of referenced structure
   long long int &rm   = rg.matrikel;
    
   cout << "Student nr. " << i << " : ";
   cout << rg.vorname << " " << rg.name << " , ";
   cout << rm << " , " << rskz << endl;
 }
}
(siehe Ex662.cc)



Gundolf Haase 2004-01-15