Programmation en C++ – Les pointeurs
Les pointeurs en C ++ sont faciles et amusants à apprendre. Certaines tâches en C ++ sont exécutées plus facilement avec des pointeurs et d’autres tâches, telles que l’allocation dynamique de la mémoire, ne peuvent pas être exécutées sans eux.
Comme vous le savez, chaque variable est un emplacement de mémoire et chaque emplacement de mémoire a son adresse définie à laquelle on peut accéder à l’aide de l’opérateur « & » (&) qui indique une adresse mémoire. Le programme ci-dessous va afficher l’adresse des variables définies:
#include <iostream> using namespace std; int main () { int v1; char v2[10]; cout << "Adresse de la variable v1 : "; cout << &v1 << endl; cout << "Adresse de la variable v2 : "; cout << &v2 << endl; return 0; }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant:
Adresse de la variable v1 : 0x7fff51216c1c Adresse de la variable v2 : 0x7fff51216c10
Qu’est-ce qu’un pointeur ?
Un pointeur est une variable dont la valeur est l’adresse d’une autre variable. Comme toute variable ou constante, vous devez déclarer un pointeur avant de pouvoir y utiliser. La forme générale d’une déclaration d’une variable de type pointeur est:
type *p;
Ici, type est le type de base du pointeur et p c’est le nom du pointeur. l’étoile utilisé derrière p c’est le même étoile que vous utilisez pour faire la multiplication. Par contre, dans cette déclaration, l’étoile est utilisé pour désigner une variable comme un pointeur. Voici la déclaration d’un pointeur valide:
int * i; //pointeur vers un entier char * c //pointeur vers un caractère float * f; //pointeur vers un flottant double * d; //pointeur vers un double
Le type de la valeur de tous les pointeurs, quel que soit entier, flottant, caractère ou autre, est le même, puisque la valeur est un nombre hexadécimal long qui représente une adresse mémoire. La seule différence entre ces pointeurs c’est le types de données de la variable à laquelle pointe le pointeur.
L’utilisation des pointeurs en C ++:
Il ya peu d’opérations importantes, que nous ferons avec les pointeurs. On définit une variable pointeur, qui contient l’adresse d’une variable et enfin on accède à l’adresse disponible dans la variable pointeur. Cela se fait en utilisant l’opérateur unaire & qui retourne l’adresse mémoire de la variable concernée. L’exemple suivant utilise ces opérations:
#include <iostream> using namespace std; int main () { int var = 33; // déclaration de variable. int *p; // déclaration d'un pointeur p = &var; // stocke l'adresse de var dans la variable pointeur p cout << "Valeur de la variable var: "; cout << var << endl; // Afficher l'adresse stockée dans la variable pointeur p cout << "Adresse stockée dans la variable p: "; cout << p << endl; // accéder à la valeur qui se trouve a l'adresse pointée par le pointeur p cout << "Valeur de * p variable: "; cout << *p << endl; return 0; }
La sortie :
Valeur de la variable var: 33 Adresse stockée dans la variable p: 0x7ffc50392d04 Valeur de * p variable: 33
Les pointeurs C ++ en détail