C · Intermediário · Português · Técnico
ponteiro para const
Ponteiro declarado como const T *p: o dado apontado não pode ser alterado por ele, mas o ponteiro pode mudar de alvo. T *const p fixa o endereço.
Onde usar
Em assinaturas, const char * promete que a função só lê a string. É sinal de contrato claro em code review, e o compilador reclama se a função tentar escrever.
Em código
int main(void) {
int x = 1, y = 2;
const int *a = &x; // dado fixo
int *const b = &x; // endereço fixo
a = &y; // ok
*b = 5; // ok
// *a = 7; // erro
}Exemplos
Troca o parâmetro por const char * porque a função só lê a string.
Esse ponteiro é para const, então não dá para escrever através dele.
Cuidado
Confundir a posição do const: lê-se da direita para a esquerda, e const int *p não é o mesmo que int *const p.
Sinônimos
ponteiro para constante
Antônimos
ponteiro constante