Différence entre pointeur et tableau

Pointeur vs tableau

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

Qu'est-ce qu'un pointeur??

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

Qu'est-ce qu'un tableau??

La figure 1 montre un élément de code généralement utilisé pour déclarer et affecter des valeurs à un tableau. La figure 2 montre à quoi ressemble un tableau dans la mémoire.

valeurs int [5];

valeurs [0] = 100;

valeurs [1] = 101;

valeurs [2] = 102;

valeurs [3] = 103;

valeurs [4] = 104;

Figure 1: Code de déclaration et d'affectation de valeurs à un tableau


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

Figure 2: tableau stocké dans la mémoire

Le code ci-dessus définit un tableau pouvant stocker 5 nombres entiers. Les index 0 à 4 permettent d'y accéder. Une propriété importante d'un tableau est que tout le tableau est alloué en tant que bloc de mémoire et que 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 assez grand pour être sûr. Mais, la plupart du temps, nous allons utiliser moins d’éléments que ce qui a été alloué. Donc, une quantité considérable de mémoire est réellement gaspillée. D'autre part, si le «tableau assez 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 de mémoire dans lequel certaines données sont stockées, tandis que les tableaux sont la structure de données la plus utilisée pour stocker une collection d'éléments. Dans le langage de programmation C, l’indexation de tableau est effectuée à l’aide de l’arithmétique de pointeur (c’est-à-dire que le sixiè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 mémoire consécutifs peut être considéré comme un tableau. En outre, il existe une différence dans la manière dont la taille de l'opérateur agit sur les pointeurs et les tableaux. Lorsqu'il est appliqué à un tableau, l'opérateur sizeof renvoie la taille complète du tableau, tandis que lorsqu'il est appliqué à un pointeur, il ne renvoie que la taille du pointeur..