====== Vereinbarung von Zeigern ======
Bislang griffen wir stets direkt auf Variablen zu, d.h., es war nicht von Interesse, wo die Daten im Speicher abgelegt sind. Ein neuer Variablentyp, der Pointer (Zeiger), speichert Adressen unter Berücksichtigung des dort abgelegten Datentyps.
Sei der Zeiger auf ein Objekt vom Typ ''int'' mit ''p'' bezeichnet, so ist
int *p;
dessen Deklaration, oder allgemein wird durch
[speicherklasse] *;
ein Zeiger auf den Datentyp '''' definiert.
So können die folgenden Zeigervariablen definiert werden
// Pointer declaration
{
struct Student
{
...
};
char *cp; // pointer on char
int x, *px; // int-variable, pointer on int
float *fp[20]; // array of 20 pointers on float
float *(fap[10]); // pointer on array of 10 float
Student *ps; // pointer on structure Student
char **ppc; // pointer on pointer of char
}
++++ gesamtes Programm|
// Pointer declaration
#include
#include
main()
{
struct Student
{
long long int matrikel;
int skz;
char name[30], vorname[20];
};
char *cp; // pointer on char
int x, *px; // int-variable, pointer on int
float *fp[20]; // array of 20 pointers on float
float *(fap[20]); // pointer on an array of 20 float
Student *ps; // pointer on structure Student
char **ppc; // pointer on pointer of char
struct Student2
{
long long int matrikel;
int skz;
char *pname, *pvorname;
};
cout << endl;
cout << " Size px : " << sizeof(px) << endl;
cout << " Value px : " << px << endl;
// px is undefined (LINUX-gcc)
// or px = 0 = 0x0 (SGI-CC)
px = 0;
if ( px == 0)
{
cout << endl << "px == NULL " << px << endl;
}
}
++++