Différence entre Tableau et Pointeur
Quelle est la différence entre un tableau et un pointeur? – Un pointeur peut être utilisé pour accéder aux éléments d’un tableau, en accédant à tout les éléments d’un tableau en utilisant l’arithmétique sur les pointeurs, ce qui rend l’accès plus rapide. Il existe une différence clé entre un pointeur et un tableau, un tableau a un emplacement dans la mémoire contenant des données. Un pointeur est un emplacement (adresse) en mémoire (sans aucune présomption sur ce qui se trouve dans cette adresse).
Les membres d’un tableau sont accessibles en utilisant l’arithmétique sur les pointeurs
Le compilateur utilise l’arithmétique sur les pointeurs pour accéder aux éléments du tableau. Par exemple, une expression comme tab [i] est traitée comme *(tab + i) par le compilateur. C’est pourquoi les expressions comme *(tab + i) fonctionnent pour un tableau et les expressions comme ptr [i] fonctionnent également pour le pointeur ptr. Voir l’exemple ci-dessous :
#include <stdio.h> int main() { int tab[] = {10, 20, 30, 40, 50, 60, 70, 80, 90}; int *ptr = tab; printf("tab[3] = %dn", tab[3]); printf("*(tab + 3) = %dn", *(tab+ 3)); printf("ptr[3] = %dn", ptr[3]); printf("*(ptr + 3) = %dn", *(ptr + 3)); return 0; } Sortie: =============== tab[3] = 40 *(tab + 3) = 40 ptr[3] = 40 *(ptr + 3) = 40
Le nom du tableau donne l’adresse du premier élément du tableau
Prenons le programme suivant par exemple.
#include <stdio.h> int main() { int tab[] = {5, 10, 20, 30, 40, 50, 60, 70, 80, 90}; int *ptr = tab; // Assigne l'adresse du tableau à ptr printf("La valeur du premier élément est %d", *ptr); return 0; } Sortie: =================================== La valeur du premier élément est 5
Différences clés entre un tableau et un pointeur
- Un tableau stocke les variables de types similaires et les types des variables doivent correspondre au type de tableau. Tandis qu’un pointeur stocke l’adresse d’une variable.
- Nous pouvons générer un tableau de pointeurs, c’est-à-dire un tableau dont les variables sont des pointeurs. Ainsi, nous pouvons créer un pointeur qui pointe vers un tableau.
- Le nom de tableau représente une adresse de mémoire fixe qui ne peut pas être modifiée. Vous pouvez l’indexer, mais vous ne pouvez pas modifier l’adresse à laquelle il se réfère. Alors qu’un pointeur est une variable contenant l’adresse de quelque chose. Comme il s’agit d’une variable, vous pouvez modifier l’adresse stockée dans cette variable pour indiquer autre chose.
- La taille du tableau détermine le nombre de variables pouvant être stockées alors un pointeur peut stocker l’adresse d’une seule variable
Conclusion
Toujours considérez un tableau comme un bloc de mémoire à un emplacement fixe. Le nom du tableau est une adresse qui ne peut pas être modifié. Tandis qu’un pointeur est juste une variable qui contient l’adresse de quelque chose et vous pouvez changer son contenu en stockant une adresse différente dans cette variable, pour qu’elle pointe vers un autre tableau, ou vers un autre élément.
Bonjour il me semble que la ligne 9 devrait être ptr[3] et non ptr[2]