Quote:
Originally Posted by MÄDMÄN
Code:
char *string="Hallo Welt\0";
|
Hier erstellst du einen Pointer, der zu einem nullterminierenden String zeigt. Das heißt, in "string" steht eine Speicheradresse, also sowas wie beispielsweise 0x06B186DF. Diese zeigt auf die Stelle, wo der String liegt.
Der Grund, warum "string" anstatt von "*string" richtig ist ist, dass du einen String anzeigen willst und printf da nunmal einen Zeiger haben will anstatt den ganzen String. Merke dir am besten, dass man wenn man einen String oder ein Objekt per Parameter an einen Funktion gibt, für gewöhnlich immer einen Pointer nimmt. Die Funktion schaut dann, welcher String auf der Adresse liegt.
Warum? Ganz einfach: jedes mal wenn du Parameter an eine Funktion übergibst werden diese kopiert und auf den Stack gelegt. Und schließlich ist es viel sparsamer, wenn man mal einen kleinen 4-Byte Pointer kopiert anstatt direkt einen ganzen Monster-String.
Edit: Zweiter :\