Sizeof String-Literal

Der folgende Code

#include <iostream>    
using namespace std;

int main()
{
    const char* const foo = "f";
    const char bar[] = "b";
    cout << "sizeof(string literal) = " << sizeof( "f" ) << endl;
    cout << "sizeof(const char* const) = " << sizeof( foo ) << endl;
    cout << "sizeof(const char[]) = " << sizeof( bar ) << endl;
}

Ausgänge

sizeof(string literal) = 2
sizeof(const char* const) = 4
sizeof(const char[]) = 2

Auf einem 32-Bit-Betriebssystem, das mit GCC kompiliert wurde.

Warum tutsizeof Berechnen Sie die Länge (den Platz, der für das Zeichenfolgenliteral benötigt wird)?Hat das String-Literal einen anderen Typ (als char * oder char []), wenn es an übergeben wird?sizeof ?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage