Referência vs Ponteiros
Deslize para mostrar o menu
Referências e ponteiros fornecem acesso indireto aos valores das variáveis, mas eles possuem algumas diferenças importantes, além de vantagens e desvantagens.
Sintaxe
-
Ponteiros são declarados utilizando o símbolo
*; -
Referências são declaradas utilizando o símbolo
&.
Inicialização
Não é possível declarar uma referência vazia. Mas é possível declarar um ponteiro vazio com nullptr.
Reatribuição
Referências não podem ser reatribuídas para referenciar um objeto diferente.
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }
Ponteiros podem ser reatribuídos para apontar para diferentes locais de memória.
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }
Acesso ao valor
Para acessar o valor apontado por um ponteiro, utiliza-se o operador de desreferência *. Para referências, não é necessário utilizar nenhum operador especial; basta utilizar a variável de referência diretamente.
Tanto ponteiros quanto referências são essenciais na gestão de memória, contribuindo para a flexibilidade dos programas. A utilização depende do contexto.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo