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 :