Zeiger sind eine richtige Geheimwaffe in C++.
//varaddr nach Lafore S. 557
#include <iostream>
using namespace std;
int main()
{
int variable1 = 111;
int variable2 = 222;
int variable3 = 333;
cout << &variable1 << " " << variable1;
cout << endl << &variable2 << " " << variable2;
int* ptr; //Zeiger auf int
ptr = &variable3;
cout << endl << ptr << " " << variable3;
return 0;
}
Dieses obige Programm gibt einfach nur drei Adressen und drei Werte aus.
//queue.cpp nach Herold,Lurz,Wohlrab S.350
#include <iostream> //cout<<
#include <conio.h> //getch()
using namespace std;
struct element
{
int zahl;
element * next;
}; //struct element
element * anfang = NULL;
element * ende = NULL;
int anzahl = 0;
//Funktion isEmpty():
bool isEmpty()
{
return anzahl==0;
}
//Funktion put(...):
void put(int wert)
{
element * neu = new(element);//Speicherplatz stellen
neu->zahl = wert;
neu->next = NULL;
if ( isEmpty() )
anfang = neu;
else
ende->next = neu;
ende = neu;
anzahl ++;
}//Funtion put()
//Funktion get()
int get()
{
int wert;
element * cursor = anfang;
if ( isEmpty())
{
cout <<endl<< "Queue ist leer.";
return -1;
}//if
anfang = anfang->next;
if ( anfang == NULL )
ende = NULL;
wert = cursor->zahl;
delete(cursor);//Speicherplatz freigeben
anzahl --;
return wert;
} //get()
int main() //Hauptprogramm
{
for (int i=1; i<=9; i++)
put(i);
for (int j=0; j<=9; j++)
cout <<endl<< get();
cout << endl << "Taste!";
getch();
return 0;
} //main()