Différence entre tableau et pointeur

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 6 Peut 2024
Anonim
Différence entre tableau et pointeur - La Technologie
Différence entre tableau et pointeur - La Technologie

Contenu


Il existe une relation étroite entre tableau et pointeur. Le pointeur peut être utilisé pour accéder aux éléments du tableau, accéder à l'ensemble du tableau en utilisant l'arithmétique du pointeur, rend l'accès plus rapide. Il existe une différence fondamentale entre un pointeur et un tableau, c’est-à-dire qu’un tableau est une collection de variables de type de données similaire, tandis que le pointeur est une variable qui stocke l’adresse d’une autre variable. Il existe d'autres différences entre un tableau et un pointeur qui sont décrites ci-dessous dans le tableau de comparaison.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonTableauAiguille
Déclaration// en C ++
tapez nom_var;
// en Java.
tapez nom-var;
nom_var = nouveau type;
// en C ++
tapez * nom_var;
TravailStocke la valeur de la variable de type de données homogène.Stockez l'adresse de l'autre variable du même type de données que le type de données des variables de pointeur.
GénérationUn tableau de pointeurs peut être généré.Un pointeur sur un tableau peut être généré.
Support JavaSoutenez le concept de tableau.Ne supporte pas les pointeurs.
Espace de rangementUn tableau normal stocke les valeurs de variable et le tableau de pointeur stocke l'adresse des variables.Les pointeurs sont spécialement conçus pour stocker l'adresse des variables.
CapacitéUn tableau peut stocker le nombre d'éléments mentionnés dans la taille de la variable tableau. Une variable de pointeur ne peut stocker l'adresse que d'une seule variable à la fois.


Définition de tableau

Un tableau est la collection d'éléments du même type de données, et tous ces éléments sont référencés par un nom commun, qui est le nom d'une variable de tableau. Il est possible d'accéder à un élément de tableau particulier en accédant à l'index spécifique de ce tableau où cet élément est stocké. Les tableaux peuvent être un tableau à une dimension, un tableau à deux dimensions ou un tableau multidimensionnel. Un tableau de pointeurs peut également être généré, c’est-à-dire un tableau contenant toutes les variables en tant que variable de pointeur. En «C ++», les tableaux sont alloués de manière statique, tandis que, en «Java», les tableaux sont alloués de manière dynamique.

// En C ++, tapez nom_var; // en Java. tapez nom-var; nom_var = nouveau type;

Ici, 'type' indique le type de données d'une variable de tableau, 'nom_var' désigne le nom donné à la variable de tableau, 'taille' indique la capacité de la variable de tableau, c'est-à-dire le nombre d'éléments de 'type' pouvant être stockés dans cette variable de tableau. . Il existe deux méthodes pour accéder à un tableau, la première «arithmétique de pointeur» et la seconde «indexation de tableau», dont «arithmétique de pointeur» est plus rapide.


// accès utilisant l'arithmétique de pointeur Void display_array (int * S) {while (* s) {cout (<< "la valeur est" << * s); * s ++; }}

L'utilisation de "l'arithmétique de pointeur" serait plus rapide que "l'indexation de tableau", c'est-à-dire l'accès à une variable de tableau à l'aide de son index. Si vous devez passer un tableau de pointeurs dans une fonction, vous pouvez utiliser la même méthode que pour passer un tableau normal, c’est-à-dire appeler directement la fonction avec le nom du tableau, sans aucun index.

Laissez-nous le comprendre avec l'exemple

// Déclaration du tableau de pointeurs. int * p;

Ici, il montre que ‘p’ est un tableau de type entier, il tiendra l’adresse de 10 variables de type entier. Passons le tableau de pointeurs ci-dessus dans une fonction display ().

affichage (p); // Appelez l'affichage de la fonction. void display (int * d) {// Fonction recevant le tableau de pointeurs. pour (int i = 0; i <10; i ++) {cout << ("index" <

Cette fonction affichera les valeurs, présentes dans les variables, dont les adresses sont stockées séquentiellement dans ce tableau de pointeurs.

Définition de pointeur

Le pointeur est une variable qui contient l'adresse mémoire d'une autre variable. Le type de données de la variable de pointeur et de la variable dont l'adresse est affectée à une variable de pointeur doit être identique. La variable de pointeur est telle que déclarée comme suit.

// Déclaration en C ++ type * name;

Ici, ‘type’ est un type de données, ‘name’ est le nom de la variable de pointeur. Le "type" définit quel type d’adresse de variable peut être stocké dans la variable de pointeur. Par exemple, le pointeur entier stockera l'adresse de la variable entière. Il existe deux opérateurs de pointeur «*» et «&». L’opérateur "*" renvoie la valeur située à l’adresse, qui est stockée dans la variable suivie du signe "*". L’opérateur "&" renvoie l’adresse de la variable suivie du signe "&".

// par exemple int b = 10 int a = & b; // Ici l'adresse de b est stockée dans la variable a. // permet que l'adresse de b soit 2000, alors maintenant a = 2000. int c = * a; // Ici, la variable de pointeur entier * a renverra la valeur située à l'adresse stockée dans un fichier .ie. c = 10.

Vous ne pouvez utiliser que deux opérateurs arithmétiques sur les pointeurs, à savoir l'addition et la soustraction. Si vous appliquez une incrémentation à une variable de pointeur d’entier, celle-ci sera incrémentée de la taille du type de données, c’est-à-dire de 2 octets. En tant que pointeur d’entier, elle devra indiquer la variable entière suivante. Même est le cas avec décrément.

// p est un pointeur entier contenant la valeur 2000. p ++; // maintenant p = 2002. p--; // maintenant p contient à nouveau 2000 comme décrémenté par deux octets.

  1. Un tableau stocke les variables de types de données similaires et les types de données des variables doivent correspondre au type de tableau. D'autre part, la variable de pointeur stocke l'adresse d'une variable, d'un type similaire à un type de type de variable de pointeur.
  2. Nous pouvons générer un tableau de pointeurs, c’est-à-dire un tableau dont les variables sont les variables de pointeur. D'autre part, nous pouvons créer un pointeur qui pointe vers un tableau.
  3. Java prend en charge les tableaux, mais pas les pointeurs.
  4. Une taille de tableau décide du nombre de variables qu’elle peut stocker alors que; une variable de pointeur peut stocker l'adresse de la seule variable

Remarque:

Java ne supporte pas ou évite strictement les pointeurs.

Conclusion:

Lorsque nous devons travailler sur des éléments de données de type de données similaires, au lieu de travailler séparément sur des variables, nous pouvons créer un tableau de ces variables de types de données similaires, puis l’opérer. Les pointeurs sont nécessaires pour certains programmes, cela donne un pouvoir énorme, mais malheureusement, si un pointeur contient une valeur incorrecte, ce sera le bogue le plus difficile à trouver.