Différence entre le pointeur et le tableau

Anonim

Pointeur vs Array

Un pointeur est un type de données qui contient une référence à un emplacement mémoire une variable pointeur stocke une 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 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 une adresse d'un emplacement mémoire dans lequel certaines données sont stockées. 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. rming opérations répétitives telles que la traversée des arbres / chaînes, les recherches de table, etc., en utilisant des pointeurs permettrait d'améliorer les performances. En effet, le déréférencement et les pointeurs de copie sont moins chers que la copie et l'accès aux données pointées par les pointeurs. Un pointeur null est un pointeur qui ne pointe vers rien. En Java, l'accès à un pointeur nul génère une exception appelée NullPointerException.

Qu'est-ce qu'un tableau?

Représenté sur la figure 1, est un morceau de code généralement utilisé pour déclarer et affecter des valeurs à un tableau. La figure 2 illustre l'apparence d'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 pour déclarer et assigner des valeurs à un tableau

100

101 102 103 3 4
Figure 2: Tableau stocké dans la mémoire Le code ci-dessus définit un tableau pouvant stocker 5 entiers auxquels on 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 devez définir un tableau suffisamment grand pour être du côté sécuritaire. Mais, la plupart du temps, nous allons utiliser moins d'éléments que nous n'en avons alloué. Donc, une quantité considérable de mémoire est réellement gaspillée. D'un autre côté, si le «tableau suffisamment grand» n'est pas suffisamment grand, le programme se bloque. 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 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 se fait en utilisant l'arithmétique du pointeur (c'est-à-dire que le ie é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 mémoire consécutifs peut être considéré comme un tableau. En outre, il existe une différence dans la façon dont l'opérateur sizeof opère 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 renverrait uniquement la taille du pointeur.