ExpertiDict

C · Intermediário · Português · Técnico

ponteiro para const

/põ.ˈtej.ɾu ˈpa.ɾa ˈkõs.tʃi/substantivo

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

Veja também

Todos os termos de C