Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando ponteiros constantes e ponteiros para constantes em C


Em C, um ponteiro é uma variável que armazena o endereço de memória de outra variável e a palavra-chave const é usado para definir uma variável ou ponteiro cujo valor não pode ser alterado depois de inicializado. Quando combinamos ponteiros com const palavra-chave, podemos controlar duas coisas -

Neste capítulo, veremos as três variações principais de ponteiros constantes -

Ponteiro Constante


Um ponteiro constante significa que o ponteiro em si é constante. Uma vez inicializado para apontar para um local de memória, ele não pode apontar para um local diferente, mas o valor armazenado nesse local ainda pode ser alterado.

A seguir está a sintaxe de um ponteiro constante -
06 
Nesta sintaxe, data_type é o tipo de dados para o qual o ponteiro aponta, *const torna o próprio ponteiro constante, pointer_name é o nome do ponteiro e &variable atribui a ele o endereço de memória de uma variável.

Exemplo de ponteiro constante


Neste exemplo, declaramos um ponteiro constante ptr e inicialize-o com o endereço da variável x . Então, alteramos o valor de x usando ptr e imprimimos seu valor.
15 
Abaixo é mostrada a saída do programa acima, que mostra que o ponteiro permanece fixo em x , mas o valor de x pode ser atualizado.
23 

Exemplo de erro de ponteiro constante


Aqui está um exemplo onde declaramos um ponteiro constante ptr e inicialize-o com o endereço da variável x . Em seguida, tentamos fazer com que aponte para o endereço da variável y . Isso gerará umerro porque um ponteiro constante não pode apontar para outro local de memória depois de inicializado.
37 
Você pode ver o erro abaixo , indicando que não podemos alterar o endereço de um ponteiro constante.
45 

Ponteiro para Constante


Um ponteiro para constante significa que o valor para o qual ele aponta não pode ser alterado, mas o próprio ponteiro pode apontar para diferentes endereços de memória (ou variáveis).

A seguir está a sintaxe do ponteiro para constante -
53 
Nesta sintaxe, const data_type ou data_type const significa que o ponteiro aponta para um valor constante, nome_do_ponteiro é o nome do ponteiro e &variable atribui a ele o endereço de uma variável.

Exemplo de ponteiro para constante


Neste exemplo, declaramos um ponteiro ptr que aponta para um valor constante e atribui a ele o endereço da variável a . Então, fazemos o ponteiro apontar para um endereço diferente da variável b e imprima seu valor.
66 
A seguir está a saída do programa acima, mostrando o mesmo ponteiro apontando para variáveis diferentes.
78 

Exemplo de um ponteiro para erro constante


Aqui está um exemplo onde declaramos um ponteiro para a constante ptr e inicialize-o com o endereço da variável a . Então, tentamos alterar o valor de a através do ponteiro. Isso gerará um erro porque um ponteiro para constante não permite modificar o valor para o qual aponta.
85 
Abaixo você pode ver o resultado , que mostra um erro indicando que não podemos modificar o valor através de um ponteiro para constante.
95 

Ponteiro Constante para Constante


Um ponteiro constante para uma constante é um ponteiro que não pode alterar seu endereço de memória e o valor armazenado nesse endereço de memória também não pode ser alterado. Ambas as ações são restritas, portanto só podemos ler o valor, nada mais.

A seguir está a sintaxe de um ponteiro constante para uma constante -
102 
Nesta sintaxe −
  • const data_type indica que o valor no local da memória não pode ser alterado através do ponteiro.
  • *const pointer_name significa que o ponteiro em si não pode apontar para nenhum outro endereço de memória após a inicialização.
  • &variável atribui o ponteiro ao endereço de memória da variável.

Exemplo de ponteiro constante para constante


Neste exemplo, declaramos um ponteiro constante para a constante ptr e atribua a ele o endereço de memória da variável a . Em seguida, imprimimos o valor de a usando o ponteiro.
119 
A seguir está a saída do programa acima -
125 

Exemplo de ponteiro constante para erro constante


Neste exemplo, declaramos um ponteiro constante para constante ptr e inicialize-o com uma variável a . Então, tentamos modificar o valor através do ponteiro e também tentamos fazer o ponteiro apontar para outra variável. Ambas as operações não são permitidas e resultarão em um erro do compilador .
139 
Abaixo você pode ver o resultado mostrando os erros -
141 

Diferença entre tipos de ponteiros constantes


A tabela a seguir mostra as diferenças entre um ponteiro constante, um ponteiro para constante e um ponteiro constante para constante.
Variação Definição É possível alterar o endereço? É possível alterar o valor? Exemplo de Sintaxe Constant PointerUm ponteiro cujo endereço é fixo, mas o valor nesse endereço pode ser modificado.NoYes
154
Ponteiro para ConstantUm ponteiro que pode apontar para endereços diferentes, mas não pode modificar o valor no local apontado.YesNo
161
Ponteiro Constante para ConstantUm ponteiro cujo endereço é fixo e o valor nesse endereço não pode ser modificado.NoNo
174

Conclusão


Neste capítulo, abordamos ponteiros constantes e ponteiros para constantes em C. Ponteiros constantes corrija o endereço, mas permita alterar o valor, ponteiros para constante permitem alterar o endereço, mas não o valor, e ponteiros constantes para constantes restringir ambos.

Linguagem C

  1. Modelos C++
  2. C# Hello World:Primeiro programa de aplicativos de console
  3. Ponteiros C++
  4. C - Fundição Tipo
  5. C - Tipos de dados
  6. Variáveis ​​C, Constantes e Literais
  7. Relação entre arrays e ponteiros
  8. Números em C++
  9. Instrução C++ Switch Case com EXEMPLO
  10. Entrada/saída básica de C++