C · Essencial · Português · Técnico
literal de string
Texto entre aspas duplas no código-fonte, guardado em região normalmente somente leitura. Seu tipo é array de char, e modificá-lo é comportamento indefinido.
Onde usar
Escrever char *s = "abc"; s[0] = 'x'; costuma dar segmentation fault. Para texto modificável, declare char s[] = "abc", que copia o literal para a stack.
Em código
const char *a = "fixo"; // não modificar
char b[] = "copia"; // cópia editável
b[0] = 'C';Exemplos
Não modifique o literal de string, ele fica em memória somente leitura.
Declare como const char * porque aquilo é um literal de string.
Cuidado
Declarar como char * quando só vai ler; use const char * para o compilador barrar tentativas de escrita.
Sinônimos
string literal