Ich drucke Adressen und Zeichenketten aus den folgenden zwei Deklarationen und Initialisierungen aus:
char * strPtr = (char *) "This is a string, made on the fly.";
char charArray [] = "Chars in a char array variable.";
Beim Ausdruck ergibt sich folgende Ausgabe mit wild unterschiedlichen Adressen für die Variablen charArray und strPtr. Die Frage ist: "Warum?"
Drucken:
printf( "%10s%40s%20p\n", "strPtr", strPtr, &(*strPtr));
printf( "%10s%40s%20p\n", "charArray", charArray, charArray);
Sortie :
strPtr This is a string, made on the fly. 0x400880
charArray Chars in a char array variable. 0x7fff12d5ed30
Die verschiedenen Adressen sind, wie Sie sehen, folgende: 0x400880 vs. 0x7fff12d5ed30
Der Rest der zuvor deklarierten Variablen hat Adressen wie die von charArray.
Auch hier lautet die Frage: "Warum sind die Adressen so unterschiedlich?" Danke für jede Hilfe.