GeeksforGeeks

int const*

int const* é um ponteiro para inteiro constante
Isto significa que a variável que está sendo declarado um ponteiro apontando para um inteiro constante. Efetivamente, isso implica que o ponteiro está apontando para um valor que não deve ser alterado. O qualificador Const não afeta o ponteiro neste cenário, então o ponteiro é permitido apontar para algum outro endereço.
a primeira palavra-chave const pode ir para qualquer lado do tipo de dados, portanto int const* é equivalente a const int*.

int *const

int *const é um ponteiro constante para inteiro

isto significa que a variável a ser declarada é um ponteiro constante apontando para um inteiro. Efetivamente, isso implica que o ponteiro não deve apontar para algum outro endereço. O qualificador Const não afeta o valor de inteiro neste cenário, de modo que o valor que está sendo armazenado no endereço é permitido mudar.

const int * const

const int * const é um ponteiro constante para inteiro constante

isto significa que a variável a ser declarada é um ponteiro constante apontando para um inteiro constante. Efetivamente, isso implica que um ponteiro constante está apontando para um valor constante. Portanto, nem o ponteiro deve apontar para um novo endereço nem o valor que está sendo apontado deve ser alterado.
a primeira palavra-chave const pode ir para qualquer lado do tipo de dados, portanto const int * const é equivalente a int const * const.

Memory Map

One way to remember the syntax (according to Bjarne Stroustrup) is the spiral rule-
The rule says, start from the name of the variable and move wise to the next pointer or type. Repetir até a expressão terminar.

The rule can also be seen as decoding the syntax from right to left.

Daí,

  • int const* é um ponteiro para int const
  • int *const é ponteiro const int
  • int const* const é const ponteiro para int const

Usando esta regra, o mesmo complexo de declarações pode ser decodificado como,

  • int ** const é uma constante de ponteiro para ponteiro para um int.
  • int * const * é um ponteiro para const pointer para um int.
  • int const * * é um ponteiro para um ponteiro para um const int.
  • int * const * const é um ponteiro de const para um ponteiro de const para um int.

Attention reader! Não pares de aprender agora. Obtenha todos os conceitos importantes da Fundação C++ e STL com a Fundação C++ e os cursos STL a um preço amigável para os estudantes e se torne a indústria pronta.Marcas Para Artigos :

C
Marcas Para Prática:

Deixe uma resposta

O seu endereço de email não será publicado.