Différence entre le pointeur et le tableau

Différence entre le pointeur et le tableau
Différence entre le pointeur et le tableau

Vidéo: Différence entre le pointeur et le tableau

Vidéo: Différence entre le pointeur et le tableau
Vidéo: Différence entre un interpréteur et un compilateur ? 🅲 MOOC 2024, Juillet
Anonim

Pointeur contre tableau

Un pointeur est un type de données qui contient une référence à un emplacement mémoire (c'est-à-dire qu'une variable de pointeur stocke l'adresse d'un emplacement mémoire dans lequel certaines données sont stockées). Les tableaux sont la structure de données la plus couramment utilisée pour stocker une collection d'éléments. La plupart des langages de programmation fournissent des méthodes pour déclarer facilement des tableaux et accéder aux éléments dans les tableaux.

Qu'est-ce qu'un pointeur ?

Un pointeur est un type de données qui stocke l'adresse d'un emplacement mémoire dans lequel certaines données sont stockées. En d'autres termes, un pointeur contient une référence à un emplacement mémoire. L'accès aux données stockées dans l'emplacement mémoire référencé par le pointeur est appelé déréférencement. Lors de l'exécution d'opérations répétitives telles que la traversée d'arbres/chaînes, la recherche de tables, etc., l'utilisation de pointeurs améliorerait les performances. En effet, le déréférencement et la copie de pointeurs sont moins chers que la copie et l'accès aux données pointées par les pointeurs. Un pointeur nul est un pointeur qui ne pointe sur rien. En Java, l'accès à un pointeur nul générerait une exception appelée NullPointerException.

Qu'est-ce qu'un tableau ?

Montré à la figure 1, est un morceau de code généralement utilisé pour déclarer et affecter des valeurs à un tableau. La figure 2 montre à quoi ressemblerait un tableau dans la mémoire.

valeurs entières[5];

values[0]=100;

valeurs[1]=101;

valeurs[2]=102;

values[3]=103;

values[4]=104;

Figure 1: Code pour déclarer et affecter des valeurs à un tableau

100 101 102 103 104
Index: 0 1 2 3 4

Figure 2: tableau stocké dans la mémoire

Le code ci-dessus définit un tableau qui peut stocker 5 entiers et on y accède en utilisant les indices 0 à 4. Une propriété importante d'un tableau est que le tableau entier est alloué comme un seul bloc de mémoire et chaque élément obtient son propre espace dans le tableau. Une fois qu'un tableau est défini, sa taille est fixe. Donc, si vous n'êtes pas sûr de la taille du tableau au moment de la compilation, vous devrez définir un tableau suffisamment grand pour être du bon côté. Mais, la plupart du temps, nous allons en fait utiliser moins d'éléments que nous n'en avons alloués. Ainsi, une quantité considérable de mémoire est en fait gaspillée. D'un autre côté, si le "tableau suffisamment grand" n'est pas assez grand, le programme planterait.

Quelle est la différence entre les pointeurs et les tableaux ?

Un pointeur est un type de données qui stocke l'adresse d'un emplacement mémoire dans lequel certaines données sont stockées, tandis que les tableaux sont la structure de données la plus couramment utilisée pour stocker une collection d'éléments. Dans le langage de programmation C, l'indexation des tableaux se fait à l'aide de l'arithmétique des pointeurs (c'est-à-dire que le ième élément du tableau x serait équivalent à (x+i)). Par conséquent, en C, un ensemble de pointeurs pointant vers un ensemble d'emplacements de mémoire consécutifs peut être considéré comme un tableau. De plus, il existe une différence dans la façon dont l'opérateur sizeof fonctionne sur les pointeurs et les tableaux. Lorsqu'il est appliqué à un tableau, l'opérateur sizeof renvoie la taille entière du tableau, alors que lorsqu'il est appliqué à un pointeur, il renvoie uniquement la taille du pointeur.

Conseillé: