Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen „char a[] = „string';' und „char *p = „string';' in C?
Unterschied zwischen „char a[] = „string“;“ und "char *p = "string";"
In der Programmierung können Variablen entweder Zeiger oder Arrays sein. Bei der Deklaration von Variablen unterscheidet sich die Syntax für Zeiger und Arrays. Das Verständnis des Unterschieds zwischen den beiden ist entscheidend für die korrekte Bearbeitung von Daten.
char a[] = "string";
Diese Codezeile erstellt ein Array großer Zeichen genug, um die Zeichenfolge „string“ zusammen mit ihrem Nullterminator zu speichern. Das Array „a“ wird mit den Elementen des Strings „string“ initialisiert. Ein Array kann später geändert werden, und seine Größe ist zur Kompilierungszeit bekannt, sodass der Operator „sizeof“ verwendet werden kann, um seine Länge zu bestimmen.
char *p = „string“;
Diese Codezeile erstellt einen Zeiger namens „p“, der auf die Adresse der Zeichenfolge „string“ zeigt. Der Zeiger „p“ kann nicht geändert werden, die Zeichenfolge, auf die er zeigt, jedoch schon, was zu undefiniertem Verhalten führt.
Vergleich:
Hinweis: Das Beispiel in der Frage enthält einen Tippfehler, da „?“ ist in diesem Zusammenhang kein gültiger Operator. Es wurde angenommen, dass es sich bei der beabsichtigten Frage um den Unterschied zwischen Arrays und Zeigern handelte.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „char a[] = „string';' und „char *p = „string';' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!