Différence entre pointeur et référence

Différence entre pointeur et référence

Différence clé - Pointer vs référence
 

Avant de discuter de la différence entre le pointeur et la référence, examinons d'abord la signification de ces deux termes brièvement. Dans un programme, les données occupent la mémoire. L'emplacement exact de la mémoire dans laquelle les données ont été placés à un temps d'exécution doivent être connus pour y accéder. Variables du pointeur et Variables de référence sont utilisés pour accéder à ces données et manipuler les adresses mémoire dans lesquelles ils se trouvent. C'est-à-dire que les pointeurs et les références peuvent être utilisés pour désigner indirectement les objets. Ils détiennent essentiellement des adresses de mémoire comme leurs valeurs. Le différence clé entre un pointeur et une référence est que Un pointeur est une variable qui stocke l'adresse de l'emplacement de la mémoire d'une autre variable tandis qu'un La référence est une variable qui fait référence à une autre variable. Les deux mécanismes, le aiguille et référence, avoir une syntaxe et une utilisation différentes.

Qu'est-ce qu'un pointeur?

Un pointeur est un objet de langage de programmation qui stocke l'adresse mémoire d'une valeur dans la mémoire informatique.

Dans la syntaxe C ++;

int i = 5;

int * ptr = & i;

La première ligne définit une variable initialisée avec une valeur de 5. La deuxième ligne définit un pointeur vers l'adresse mémoire de la variable. Ici, le 'PTR' est déclaré comme un objet de type 'pointeur vers int' dont la valeur initiale est l'adresse de l'objet I. Essentiellement, la variable PTR pointe vers I en stockant son adresse mémoire.

L'obtention de la valeur stockée dans un emplacement de mémoire est appelée déréférence. L'opérateur * est utilisé pour déréférence le pointeur. Une fois les déclarations terminées, l'expression indirecte * ptr déréférence ptr pour se référer à i.

Pour modifier la valeur de I, la mission suivante peut être utilisée;

* ptr = 20;

Les pointeurs peuvent être réaffectés pour désigner également différents objets.

UN pointeur nul est un type spécial de pointeur. Un pointeur nul est souvent indiqué par 0 ou nul et ne pointe rien vers rien.  C'est une bonne pratique d'utiliser un pointeur nul dans le cas de ne pas avoir d'adresse exacte à affecter au pointeur. Cette affectation peut être utilisée dans les opérations et conditions logiques.

Les pointeurs peuvent être utilisé pour stocker et gérer les adresses de la mémoire allouée dynamiquement. La mise en œuvre et le contrôle des structures de données telles que les piles, les files d'attente et les listes peuvent être rendues efficaces avec l'utilisation de pointeurs. Par exemple, une file d'attente peut avoir deux pointeurs; pointeur de tête et pointeur de queue. Les pointeurs peuvent également être utilisés pour transmettre des variables par leur adresse, ce qui permettrait à la modification de la valeur. La manipulation directe de la mémoire ou des périphériques mappées de mémoire peut également être gérée en utilisant des pointeurs.

Les pointeurs permettent un accès protégé et non protégé à la mémoire adressée. Par conséquent, des précautions nécessaires doivent être prises pour vérifier que le contenu d'un pointeur est valide. Sinon, la déréférence d'un pointeur avec une adresse de mémoire non valide pourrait entraîner le plantage du programme.

Les pointeurs sont pris en charge dans des langues telles que C, C ++, Pascal et de nombreuses langues d'assemblage.

Aiguille un pointant vers l'adresse mémoire associée à la variable b.

Qu'est-ce qu'une référence?

Une référence est simplement un identifiant alternatif pour une valeur stockée dans la mémoire. Il permet à un programme d'accéder indirectement à une donnée particulière.

Dans la syntaxe C ++;

int i = 5;

int & ref = je;

La première ligne définit une variable initialisée avec une valeur de 5. La deuxième ligne déclare «ref» comme un objet de type «référence à int» qui fait référence à i. Une référence est différente des données elle-même étant donné qu'une référence est implémentée comme l'adresse physique de la donnée particulière qui est stockée en mémoire.

Une fois défini, une référence ne peut pas être réaffectée une nouvelle valeur. Une référence fait toujours référence à l'objet avec lequel il est initialisé. Dans la mission suivante, Ref fait toujours référence à I, mais la valeur est maintenant 20.

ref = 20;

Selon l'exemple ci-dessus, la déréférence des références ne nécessite aucun opérateur.

Les références peuvent être utilisées lorsqu'une variable se réfère toujours à un objet. En effet, contrairement aux pointeurs, les références ne peuvent pas être nulles et doivent toujours être affectées à l'initialisation. Étant donné que les références doivent toujours se référer à un objet, faire une telle variable qu'une référence garantit que le programme fonctionnerait efficacement et correctement. Étant donné qu'il n'y a pas de références nulles, la validité d'une variable de référence ne doit pas être testée.

Les variables de référence peuvent être Utilisé pour transmettre efficacement les grandes données comme arguments aux procédures. Les références sont également utilisées pour partager de grandes données entre les différentes zones de code, car chaque code conserve une référence aux données.

Langages de programmation tels que C ++, Java, Python, Perl, PHP, Ruby, etc. Soutenir les références.

Quelle est la différence entre le pointeur et la référence?

Définition du pointeur et référence

Aiguille: Un pointeur est l'adresse mémoire d'un objet stocké dans la mémoire informatique.

Référence: Une référence est un identifiant alternatif ou un alias pour un objet.

Caractéristiques du pointeur et référence

Déclaration

Aiguille: Un pointeur est déclaré avec l'opérateur *.

Référence: Une référence est déclarée avec l'opérateur.

Déréférence

Aiguille: Une variable de pointeur oblige l'opérateur *.

Référence: Une variable de référence ne nécessite aucun opérateur pour être déréférencé.

Initialisation

Aiguille:  Les pointeurs peuvent être initialisés pour null. De telles variables sont appelées pointeurs nuls.

Référence: Les références ne peuvent pas être initialisées pour null. Il n'y a pas de référence nul. Une référence doit toujours se référer à un objet.

Réaffectation

Aiguille: Une variable de pointeur peut être réaffectée pour désigner différents objets.

Référence: Une variable de référence ne peut pas être réaffectée. Il fait toujours référence à l'objet avec lequel il a été initialisé.

Usage

Aiguille: Les variables du pointeur doivent être utilisées lorsque la possibilité de se référer à rien existe ou lorsqu'elle est nécessaire de se référer à différentes choses à des moments différents.

Référence: Les variables de référence doivent être utilisées lorsqu'il y aura toujours un objet à référence et quand il n'est pas nécessaire d'utiliser cette variable de référence pour se référer à autre chose que cet objet.

Application de l'utilisation

Aiguille: Les variables du pointeur peuvent être utilisées pour implémenter des algorithmes et des structures de données.

Référence: Les variables de référence peuvent être utilisées dans les paramètres de fonction et les types de retour définissent les interfaces utiles.

Langues utilisées:

Aiguille: Les langages de programmation tels que C, C ++, Pascal et de nombreux langages d'assemblage prennent en charge les pointeurs.

Référence: Langages de programmation tels que C ++, Java, Python, Perl, PHP, Ruby, etc. Soutenir les références.

Image gracieuseté: «Pointes» par ce fichier a été réalisé par l'utilisateur: SventRanSlation.Propre travail.Cette image vectorielle a été créée avec un scape.(CC BY-SA 3.0) via les communes -