Memória e Modificadores
Produzido por Gustavo BarbosaTeoria
Introdução
Fala aí, tudo beleza?
Nesse tópico a gente vai aprender sobre como o espaço na memória é criado para armazenar uma variável e como isso influencia nos valores que as variáveis podem assumir.
Depois, vamos ver que esse espaço pode ser alterado pelo que denominamos como modificadores.
Espaço na memória
Para cada tipo de variável, no momento em que a declaramos no nosso código, existe um espaço destinado para armazenar o seu valor. Além disso, cada tipo de variável tem uma faixa de valores que podem ser assumidos:
Mas onde esses bytes ficam armazenados?
No C++, existe o operador &, por onde podemos acessar o endereço na memória ram no qual uma variável está armazenada. Vamos ver como isso funciona:
Perceba que quando usamos o “cout” e chamamos apenas a variável, o programa vai printar o valor que está armazenado dentro dela, mas quando escrevemos antes do nome da variável, o programa vai printar o endereço de memória onde essa variável está armazenada. Isso ocorre pois o “” é um caractere especial para o C++, que o interpreta como um indicativo de endereço de memória.
Agora, imagine que você está trabalhando num projeto e precisa armazenar numa variável um valor que exceda o limite do int e que possa ser apenas positivo, como uma distância muito grande. Nesse caso, utilizaríamos a seguinte expressão:
Nesse código, o unsigned é um modificador de variáveis que nos ajudaria nessa exata questão. Mas como ele funciona?
Quando usamos o unsigned, estamos indicamos pro programa que a variável em questão é sempre positiva, com isso, ele “move” o intervalo de valores que ela pode assumir pra cobrir apenas valores positivos. Então, o limite máximo é aumentado.
Vamos ver mais sobre esse e outros tipos de modificadores!
Tipos de modificadores
Os principais modificadores usados em C++ são:
- Signed:
- Unsigned:
- Long
- Short
Utilizado para declarar que iremos trabalhar tanto com valores positivos quanto com valores negativos. O padrão em C++ é esse, então declarar uma variável com signed, pode ser redundante. Por exemplo, é o mesmo que .
Utilizado quando vamos trabalhar apenas com valores maiores ou iguais a 0. Uma variável declarada como , por exemplo, ocupa a mesma quantidade de memória que um (4 bytes), mas como não estamos trabalhando com valores negativos, o espaço na memória é totalmente reservado para valores positivos ou 0, o que torna o limite de valores positivos maior.
Aumenta a quantidade de memória destinada ao armazenamento de uma variável. Com isso, os limites de valores também aumentam.
O short é o oposto do long, ele diminui a memória destinada ao armazenamento de uma variável, diminuindo os limites de valores. Seu uso é importante para quando queremos reduzir a memória ocupada pelo nosso programa.
Com base nisso, podemos refazer a nossa tabela usando os modificadores para o tipo inteiro:
O uso desses modificadores é semelhante para os outros tipos de variáveis.
Função sizeof
Por meio do comando sizeof é possível saber o tamanho do espaço da memória dedicado a uma variável. Vamos usá-lo para confirmar alguns valores:
Esse programa vai printar na tela o quanto de memória cada tipo de variável ocupa. Pois a função sizeof nos retorna esse valor em bytes ao ser usada da forma acima.
Com isso, você já sabe sobre a memória que o seu programa usa para guardar as variáveis declaradas no código e como utilizar modificadores para manipular isso.
Agora vamos fazer alguns exercícios de fixação.