Ponteiros constantes
Um ponteiro constante em C não pode alterar o endereço da variável para a qual está apontando, ou seja, o endereço permanecerá constante. Portanto, podemos dizer que se um ponteiro constante aponta para alguma variável, então ele não pode apontar para nenhuma outra variável.
java char para string
Sintaxe do ponteiro constante
*const ;
A declaração de um ponteiro constante é fornecida abaixo:
int *const ptr;
Vamos entender o ponteiro constante através de um exemplo.
#include int main() { int a=1; int b=2; int *const ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; }
No código acima:
- Declaramos duas variáveis, ou seja, aeb com valores 1 e 2, respectivamente.
- Declaramos um ponteiro constante.
- Primeiro, atribuímos o endereço da variável 'a' ao ponteiro 'ptr'.
- Em seguida, atribuímos o endereço da variável 'b' ao ponteiro 'ptr'.
- Por último, tentamos imprimir o valor da variável apontada pelo 'ptr'.
Saída
Na saída acima, podemos observar que o código acima produz o erro 'atribuição de variável somente leitura'ptr''. Isso significa que o valor da variável 'ptr' que 'ptr' contém não pode ser alterado. No código acima, estamos alterando o valor de 'ptr' de &a para &b, o que não é possível com ponteiros constantes. Portanto, podemos dizer que o ponteiro constante, que aponta para alguma variável, não pode apontar para outra variável.
Ponteiro para Constante
Um ponteiro para constante é um ponteiro através do qual o valor da variável que o ponteiro aponta não pode ser alterado. O endereço desses ponteiros pode ser alterado, mas o valor da variável que o ponteiro aponta não pode ser alterado.
Sintaxe do ponteiro para constante
const *
A declaração de um ponteiro para constante é fornecida abaixo:
Unix x Windows
const int* ptr;
Vamos entender através de um exemplo.
#include int main() { int a=100; int b=200; const int* ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%u',ptr); return 0; }
No código acima:
- Declaramos duas variáveis, ou seja, aeb com os valores 100 e 200 respectivamente.
- Declaramos um ponteiro para constante.
- Primeiro, atribuímos o endereço da variável 'a' ao ponteiro 'ptr'.
- Em seguida, atribuímos o endereço da variável 'b' ao ponteiro 'ptr'.
- Por último, tentamos imprimir o valor de 'ptr'.
Saída
O código acima é executado com sucesso e mostra o valor de ‘ptr’ na saída.
- Agora, escrevemos o código no qual alteramos o valor da variável para a qual o ponteiro aponta.
#include int main() { int a=100; int b=200; const int* ptr; ptr=&b; *ptr=300; printf('Value of ptr is :%d',*ptr); return 0; }
No código acima:
- Declaramos duas variáveis, ou seja, 'a' e 'b' com os valores 100 e 200 respectivamente.
- Declaramos um ponteiro para constante.
- Atribuímos o endereço da variável 'b' ao ponteiro 'ptr'.
- Em seguida, tentamos modificar o valor da variável ‘b’ através do ponteiro ‘ptr’.
- Por último, tentamos imprimir o valor da variável que é apontada pelo ponteiro 'ptr'.
Saída
O código acima mostra o erro 'atribuição de local somente leitura '*ptr''. Este erro significa que não podemos alterar o valor da variável para a qual o ponteiro está apontando.
Ponteiro Constante para uma Constante
Um ponteiro constante para uma constante é um ponteiro, que é uma combinação dos dois ponteiros acima. Não pode alterar o endereço da variável para a qual está apontando nem pode alterar o valor colocado neste endereço.
Sintaxe
const * const ;
A declaração para um ponteiro constante para uma constante é fornecida abaixo:
const int* const ptr;
Vamos entender através de um exemplo.
#include int main() { int a=10; int b=90; const int* const ptr=&a; *ptr=12; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; }
No código acima:
- Declaramos duas variáveis, ou seja, 'a' e 'b' com os valores 10 e 90, respectivamente.
- Declaramos um ponteiro constante para uma constante e então atribuímos o endereço de 'a'.
- Tentamos alterar o valor da variável ‘a’ através do ponteiro ‘ptr’.
- Então tentamos atribuir o endereço da variável 'b' ao ponteiro 'ptr'.
- Por último, imprimimos o valor da variável, que é apontada pelo ponteiro 'ptr'.
Saída
O código acima mostra o erro 'atribuição de local somente leitura '*ptr'' e 'atribuição de variável somente leitura 'ptr''. Portanto, concluímos que o ponteiro constante para uma constante não pode alterar o endereço nem o valor apontado por este ponteiro.
comparação de string c#