Neste artigo abordamos de forma mais detalhada a criação de variáveis, regiões de memória que recebem um nome (identificador) e armazenam algum tipo de dado. Hoje falaremos sobre as constantes.
Constantes também podem ser entendidas como variáveis no sentido de que também estão associadas a algum dado, algum valor. Contudo, as constantes nem sempre estão associadas a uma região de memória, apesar de possuir um identificador.
O que são constantes?
A principal característica de uma variável é que ela pode receber diferentes valores durante a execução do programa, desde que sejam do mesmo tipo. Assim, se uma determinada variável do tipo inteiro começa com o valor 10, nada garante que ela continuará com o valor 10 ao final do programa.
Por outro lado, a principal característica de uma constante é que seu valor não sofre alteração. Como o nome sugere, seu valor é constante e não variável. Assim, se criarmos uma constante com o valor 10, ela continuará com o valor 10 ao final do programa.
Qual o benefício das constantes?
Imagine que estamos criando um programa para cálculos matemáticos. Como é sabido, constantemente precisamos do valor 3,1415 para cálculos diversos. Uma primeira possibilidade, e muito utilizada inclusive, é inserir o valor 3,1415 em toda instrução que precisar do valor.
Porém, caso seja necessário alterar o valor por alguma mudança de projeto, todo o código precisará se revisado, e toda instrução que possui o valor 3,1415 precisará ser alterada.
O principal benefício ao utilizar constantes reside justamente no fato de que, caso seja necessário alterá-lo, basta alterar o valor atribuído à constante no momento de sua declaração, não sendo necessário nenhuma outra alteração no restante do código.
Um segundo benefício reside na segurança garantida pelas constantes. Uma variável pode ter seu valor alterado a qualquer momento. Por outro lado, uma constante apenas recebe um valor quando é criada, não sendo possível alterar seu valor depois.
Outro benefício reside no fato de não ser utilizado memória para armazenar a constante. Contudo, este benefício está diretamente relacionado à maneira como a constante é definida.
Como declarar constantes?
A declaração de uma constante é muito semelhante à declaração de variáveis, com algumas variações. A forma mais simples e intuitiva é criá-la dentro da função principal ou da função que precisar da constante, usando para tal a palavra reservada “const”, dizendo qual o tipo de dado, seu nome e seu valor, como apresentado a seguir:
#include <stdio.h> #include <stdlib.h> void main() { const float PI = 3.1415; printf("Conste pi: %f\n", PI); }
Uma constante também pode ser criada como uma variável global, como apresentado a segui:
#include <stdio.h> #include <stdlib.h> const float PI = 3.1415; void main() { printf("Conste pi: %f\n", PI); }
Em ambos os casos, sua criação é muito semelhante à criação de uma variável. Há uma região de memória associada à constante acessada por meio de seu identificar (seu nome).
Uma terceira opção é criar uma macro que fará a associação de um identificar (nome) com um valor. Esta forma de criação de constantes é mais eficiente por não utilizar memória para armazenar o valor da constante. A criação de constantes por meio de macros é apresentada a seguir:
#include <stdio.h> #include <stdlib.h> #define PI 3.1415 void main() { printf("Conste pi: %f\n", PI); }
Ao criar constantes com a diretiva #define não há uma região de memória associada ao identificador PI. Ao compilar o programa, o compilador substitui todas as ocorrências de PI pelo valor 3,1415.
Podemos confirmar estas informações testando o programa abaixo no pythontutor (veja aqui como utilizar o pythontutor).
#include <stdio.h> #include <stdlib.h> #define PI 3.1415 const float PI1 = 3.1415; int main() { const float PI2 = 3.1415; int num = 10; num = num * PI; return 0; }
Ao testar o programa no pythontutor, perceba que possuímos uma variável global identificada como PI1 e uma variável local identificada como PI2. Contudo, não existe nenhuma variável identificada como PI, como apresentado na figura a seguir.
Se ficou alguma dúvida, compartilhe nos comentários que faremos o possível para esclarecer. Um grande abraço, bons estudos e até o próximo.