Hi, ich bin neu im Forum und schlage mich jetzt schon zu lange mit meinem Unverständnis im Bezug auf Zeiger rum
.
So jetzt zu meiner Frage/Fragen...
Wenn eine Funktion einen Zeiger in der Parameterliste hat wird doch normalerweise beim Aufruf dieser Funktion eine Adresse einer Variable erwartet.
Das würde dann so aussehen.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
// Funktionsprototyp
//
void Function(int *pPointer);
// Aufruf der Funktion
//
Function(&Variable); // Hier wird die Adresse der Variable übergeben und jetzt habe ich in der Funktion Zugriff auf auf den Speicherbereich an dem Sie steht
|
Das leuchtet mir ein.
Was mir weniger einleuchtet ist die Tatsache, nehmen wir als Beispiel die Logfile-Klasse aus dem Buch, das dort einfach ein String übergeben wird, obwohl
im Funktionsprototyp ein Zeiger als Parameter angegeben ist.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
// Funktionsprototyp
//
void Textout(const char *Text);
// Aufruf der Funktion
//
Textout(buffer); // Hier wird einfach nur eine char-Variable übergeben, jedoch nicht die Adresse sondern der Wert
Textout("<font color=black>"); // Hier im Grunde das gleiche
|
Jetzt frage ich mich wie das gehen kann bzw was für eine Logik dahintersteckt.
Danke im Voraus für hilfreiche Antworten