Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der wahre Typ eines String-Literals in C?

Was ist der wahre Typ eines String-Literals in C?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 21:24:30214Durchsuche

 What is the True Type of a String Literal in C  ?

Bestimmen des Typs eines String-Literals

Viele Programmierer haben Schwierigkeiten, den Typ eines String-Literals zu verstehen. Ist es ein const char * (Zeiger auf ein konstantes Zeichen) oder ein const char (konstantes Zeichen)?

Die Antwort liegt in der Darstellung von String-Literalen in C. Anders als in C, wo Zeichenfolgenliterale als Zeichenarrays mit einem am Ende angehängten Nullterminator ('') gespeichert werden, sind Zeichenfolgenliterale in C grundsätzlich const char[N]. Hier bezeichnet N die Länge der Zeichenfolge (einschließlich des Nullterminators).

Im Wesentlichen sind const char[N] und char const[N] äquivalent. Dies bedeutet, dass Sie die Länge eines Zeichenfolgenliterals mithilfe von sizeof("hello") - 1 zuverlässig bestimmen können, wodurch die Anzahl der Zeichen in der Zeichenfolge (einschließlich aller eingebetteten Nullzeichen) genau berechnet wird. Wenn String-Literale Zeiger wären, würde dieser Ansatz scheitern, da er immer die Größe eines Zeigers in Ihrem System minus eins zurückgeben würde.

Das obige ist der detaillierte Inhalt vonWas ist der wahre Typ eines String-Literals in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn