tipos tabla son los lenguaje derivados definicion datos cuáles cuales basicos c++ string literals

tabla - ¿Cuál es el tipo de datos de la cadena literal en C++?



tipos de datos en c++ definicion (2)

Estoy confundido sobre el tipo de datos de una cadena literal. ¿Es una const char * o una const char ?


Es un const char[N] (que es lo mismo que char const[N] ), donde N es la longitud de la cadena más una para el NUL terminación (o solo la longitud de la cadena si define "longitud de una cadena "como ya incluye el NUL ).

Esta es la razón por la que puede hacer sizeof("hello") - 1 para obtener el número de caracteres en la cadena (incluyendo cualquier NUL incrustado); si fuera un puntero, no funcionaría porque siempre sería el tamaño del puntero en su sistema (menos uno).


"Hello world" es const char[12] (once caracteres más ''/0'' terminador ''/0'' ).

L"Hello world" es const wchar_t[12] .

Y desde C ++ 14, "Hello world"s es std::string .

También tenga en cuenta las notaciones literales de cadena u8"" , u"" y U"" agregadas por C ++ 11, que especifican las codificaciones UTF-8, UTF-16 y UTF-32, respectivamente. La codificación de los literales de cadena no calificados (es decir, "" y L"" ) está (y siempre estuvo) definida por la implementación.