Différence entre le pointeur et le tableau

Différence entre le pointeur et le tableau

Pointeur vs tableau

Un pointeur est un type de données qui contient une référence à un emplacement de mémoire (i.e. Une variable de pointeur stocke l'adresse d'un emplacement de 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 les tableaux et les éléments d'accès dans les tableaux.

Qu'est-ce qu'un pointeur?

Un pointeur est un type de données qui stocke une adresse d'un emplacement de mémoire dans lequel certaines données sont stockées. En d'autres termes, un pointeur tient une référence à un emplacement de mémoire. L'accès aux données stockées dans l'emplacement de la mémoire qui est référencée par le pointeur est appelée déréférence. Lorsque vous effectuez des opérations répétitives telles que la traversée des arbres / cordes, des recherches de table, etc., L'utilisation de pointeurs améliorerait les performances. En effet. Un pointeur nul est un pointeur qui ne pointe rien. En Java, l'accès à un pointeur nul générerait une exception appelée nullpointerException.

Qu'est-ce qu'un tableau?

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

Int valeurs [5];

valeurs [0] = 100;

valeurs [1] = 101;

valeurs [2] = 102;

valeurs [3] = 103;

valeurs [4] = 104;

Figure 1: code pour déclarer et attribuer 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 ils sont accessibles en utilisant des indices 0 à 4. Une propriété importante d'un tableau est que l'ensemble du tableau 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 en toute sécurité. Mais, la plupart du temps, nous allons en fait utiliser moins de nombre d'éléments que nous ne l'avons attribué. Donc 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 réellement assez grand, le programme se bloquerait.

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

Un pointeur est un type de données qui stocke une adresse d'un emplacement de 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 du tableau se fait à l'aide de l'arithmétique du pointeur (i.e. Le ième élément du tableau X serait équivalent à * (x + i)). Par conséquent, en C, un ensemble de pointeurs qui pointent vers un ensemble d'emplacements de mémoire qui sont consécutifs, peuvent être considérés comme un tableau. De plus, il y a une différence dans le fonctionnement de la taille de l'opérateur sur des pointeurs et des tableaux. Lorsqu'il est appliqué sur un tableau, l'opérateur de taille de renvoyer la taille entière du tableau, alors que lorsqu'elle est appliquée à un pointeur, il renverrait juste la taille du pointeur.