Diferencia entre la cadena literal y la matriz constexpr de char
Me he estado preguntando si hay alguna diferencia entre lo que señalaptrToArray
yptrToLiteral
en el siguiente ejemplo:
constexpr char constExprArray[] = "hello";
const char* ptrToArray = constExprArray;
const char* ptrToLiteral = "hello";
¿Entiendo queconstExprArray
y los dos"hello"
los literales son todos los valores constantes de tiempo de compilación correctos?Si es así, ¿hay alguna diferencia en cómo se almacenan en el archivo ejecutable, o es puramente la implementación del compilador o la plataforma específica?¿Son tratados de manera diferente en tiempo de ejecución detrás de escena?¿Algo más que saber?