In C können wir char * verwenden, um auf einen String zu zeigen. Genau wieWo wird eine char-pointing-Zeichenfolge LOGICALLY gespeichert?
char *s = "Hello";
.
Wie man sieht, befindet sich weder die Variable dynamisch auf dem Heap, weil es keine dynamischen Funktionen wie malloc gibt, noch ist sie definiert, um auf eine bestimmte andere Variable zu zeigen.
Also meine Frage ist, Wo ist der Literal-String welche Variable [char * s] zeigt auf logisch gespeichert?
Ist es im Stapel wie alle normalen lokalen Variablen gespeichert? oder etwas wie Stapel?
Eigentlich bin ich ein Absolvent der Computer-Engineering-Abteilung, aber ich habe nicht gefunden und haben zu viel neugierig gewesen, wie [char * string] arbeitet logisch. Es ist wirklich eine große Ehre, jetzt diesen hier zu fragen.
Es wird im Textsegment –
@RaghuSrikanthReddy nicht unbedingt gespeichert. Viele Plattformen setzen Zeichenfolgenliterale in den Abschnitt "Rodata". – fuz
mögliche Duplikate von [wo im Speicher sind Stringliterale? Stack/Heap?] (http://stackoverflow.com/questions/4970823/where-in-memory-are-string-literals-stack-heap) – juanchopanza