Die Frage des Interviewers enthält einen Tippfehler, da das „?“ Der Operator ist semantisch nicht gültig. Unter der Annahme eines Tippfehlers können wir die beabsichtigte Frage interpretieren:
Was ist der Unterschied zwischen „char a[] = „string“;“ und "char *p = "string";"?
Arrays vs. Zeiger
Der Hauptunterschied zwischen diesen Deklarationen liegt in der Datenstruktur, die sie erstellen :
Wichtige Unterscheidungen
Feature | Array | Pointer |
---|---|---|
Data Type | Character Array | Character Pointer |
Modificability | Modifiable | Immutable |
Size Determination | sizeof can be used | strlen function must be used |
Usage | Used when the string content needs modification | Used when the string content remains constant |
Überlegungen zur Verwendung
Je nach Szenario müssen Sie die richtigen Daten auswählen Struktur:
Standard Compliance
In C ist die Verwendung von Zeichenfolgenliteralen ohne das Schlüsselwort „const“ veraltet. Daher wären die korrekten Deklarationen:
C vs. C Hinweis
Beachten Sie, dass diese Konzepte gelten speziell für C und nicht für C . In C ist die String-Verarbeitung anders und die oben genannten Codestrukturen würden nicht für die String-Manipulation verwendet.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „char a[] = „string';' und „char *p = „string';'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!