000
01.07.2007, 23:16 Uhr
~newb
Gast
|
Hallo Leute,
ich habe das Pointer-Thema eigentlich gut verstanden, aber ich tu mich bei manchen Dingen noch etwas schwer sie nachzuvollziehen, zum Beispiel folgender kurzer Code:
C++: |
#include <stdio.h>
int main(void) { char *sort[] = { "Zeppelin", "Auto", "Amerika", "Programmieren" };
printf("%s\n", sort[1]); /* Auto */ printf("%s ", (sort[2]+2)); /* erika */ printf("%s %s\n", (sort[0]+6), sort[2]); /* in Amerika */ printf("%.5s\n", (sort[3]+5-2)); /* gramm */ }
|
Es wäre nett, wenn mir jemand erklären könnte, warum ich wenn ich zum Beispiel sort[1] mit printf ausgeben möchte als Ausgabe "Auto" erhalte, und nicht den 2ten Buchstaben davon, also "u"??? Ich weiß, dass liegt an den Adressen, jedoch verstehe ich das nicht ganz.
Und warum muss ich hier zum Beipiel keinen Speicherplatz reservieren? Reserviert den mein Compiler selbst, aufgrund meiner Initialisierungen oder?
Vielen Dank. Grüße |