Qual é a diferença entre ponteiro e referência
Índice:
o principal diferença entre o ponteiro e a referência é que ponteiro é uma variável que contém o endereço de outra variável enquanto referência é um apelido para acessar uma variável já existente.
C ++ é um aprimoramento da linguagem C. Também é considerado um superconjunto de C. É uma linguagem poderosa e ajuda a construir vários aplicativos, como sistemas operacionais, drivers de dispositivo, etc., enquanto fornece muitos recursos para implementar programas. Um desses recursos é a alocação dinâmica de memória. Ponteiros e referências são dois conceitos relacionados à alocação dinâmica de memória.
Ponteiro, Referência
O que é Pointer
Um ponteiro é uma variável que armazena o endereço de outra variável. Em outras palavras, ele armazena o endereço direto de um local de memória. O programador deve declarar um ponteiro antes de usá-lo para armazenar um endereço de memória. Por exemplo, assume, int * ptr; ele explica que ptr é um ponteiro que contém o endereço de um inteiro. A marca * designa uma variável como um ponteiro.
Existem várias etapas a serem seguidas ao usar ponteiros. Primeiro, o programador deve definir uma variável de ponteiro. Em seguida, ele deve atribuir o endereço de uma variável a um ponteiro. Finalmente, o programador pode acessar o valor. Um exemplo simples é o seguinte.
Figura 1: programa C ++ com ponteiro
A variável ‘x’ contém o valor 50. O ptr é um ponteiro para um número inteiro. Na linha 9, ptr é atribuído com o endereço da variável x. Agora ptr aponta para x. Imprimir o valor apontado por ptr dá o valor de x, que é 50.
O que é referência
Uma referência é um apelido para uma variável já existente. Depois que a referência é inicializada com uma variável, é possível usar o nome da variável ou o nome da referência para se referir a essa variável. Normalmente, um nome de variável é um rótulo que ajuda a identificar a localização da memória dessa variável. Uma referência pode ser considerada como um segundo rótulo anexado a esse local de memória. Portanto, o programador pode acessar o conteúdo da variável usando o nome da variável ou usando a referência.
int x = 50;
A variável de referência para x é a seguinte.
int & r = x;
Figura 2: programa C ++ com referência
A variável x pode armazenar o tipo de dados inteiro enquanto r é uma referência inteira inicializada em x. Em seguida, x é atribuído com o valor 50. A linha 10 imprime o valor de x usando o nome da variável original x enquanto a linha 11 imprime o valor de x usando a referência r.
Diferença entre ponteiro e referência
Definição
Um ponteiro é um objeto de linguagem de programação que armazena o endereço de memória de outro valor localizado na memória do computador, enquanto uma referência é um apelido ou outro nome para uma variável já existente. Esta é a principal diferença entre ponteiro e referência.
Funcionalidade
Um ponteiro contém o endereço de um local da memória, enquanto uma referência é um apelido para uma variável que já existe.
Operador
O operador para ponteiro é *, enquanto o operador para referência é &.
NULO
Pode haver ponteiros nulos, mas não pode haver referências nulas. Esta é outra diferença entre ponteiro e referência.
Inicialização
É possível inicializar ponteiros a qualquer momento; no entanto, uma referência deve ser inicializada ao criá-la.
Modificação
A modificação é outra diferença entre ponteiro e referência. Os ponteiros podem apontar para outro objeto a qualquer momento. No entanto, após inicializar uma referência a um objeto, não é possível alterá-la para se referir a algum outro objeto.
Conclusão
Ponteiros e referências são dois conceitos relacionados à alocação dinâmica de memória em C ++. A principal diferença entre o ponteiro e a referência é que o ponteiro é uma variável que contém o endereço de outra variável, enquanto a referência é um apelido para acessar uma variável já existente.
Referência:
1. “Ponteiros C”. Strings Python (com exemplos), disponíveis aqui.
![Qual é a diferença entre ponteiro e referência Qual é a diferença entre ponteiro e referência](https://img.books-kingdom.com/images/002/image-5410.jpg)