Pointeurs C ++

Les pointeurs C ++ sont faciles et amusants à apprendre. Certaines tâches C ++ sont exécutées plus facilement avec des pointeurs, et d'autres tâches C ++, telles que l'allocation de mémoire dynamique, ne peuvent pas être effectué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, accessible à l'aide de l'opérateur perluète (&) qui désigne une adresse en mémoire. Considérez ce qui suit qui affichera l'adresse des variables définies -

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6

Que sont les pointeurs?

UNE pointerest 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 l'utiliser. La forme générale d'une déclaration de variable de pointeur est -

type *var-name;

Ici, typeest le type de base du pointeur; il doit s'agir d'un type C ++ valide etvar-nameest le nom de la variable du pointeur. L'astérisque que vous avez utilisé pour déclarer un pointeur est le même astérisque que vous utilisez pour la multiplication. Cependant, dans cette instruction, l'astérisque est utilisé pour désigner une variable comme pointeur. Voici la déclaration de pointeur valide -

int    *ip;    // pointer to an integer
double *dp;    // pointer to a double
float  *fp;    // pointer to a float
char   *ch     // pointer to character

Le type de données réel de la valeur de tous les pointeurs, qu'il soit entier, flottant, caractère ou autre, est le même, un long nombre hexadécimal qui représente une adresse mémoire. La seule différence entre les pointeurs de différents types de données est le type de données de la variable ou de la constante vers laquelle pointe le pointeur.

Utilisation de pointeurs en C ++

Il y a peu d'opérations importantes, que nous ferons très fréquemment avec les pointeurs. (a) Nous définissons une variable de pointeur. (b) Attribuez l'adresse d'une variable à un pointeur. (c)Accédez enfin à la valeur à l'adresse disponible dans la variable pointeur. Cela se fait en utilisant l'opérateur unaire * qui renvoie la valeur de la variable située à l'adresse spécifiée par son opérande. L'exemple suivant utilise ces opérations -

#include <iostream>

using namespace std;

int main () {
   int  var = 20;   // actual variable declaration.
   int  *ip;        // pointer variable 

   ip = &var;       // store address of var in pointer variable

   cout << "Value of var variable: ";
   cout << var << endl;

   // print the address stored in ip pointer variable
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // access the value at the address available in pointer
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit un résultat comme suit -

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

Pointeurs en C ++

Les pointeurs ont des concepts nombreux mais simples et ils sont très importants pour la programmation C ++. Voici quelques concepts de pointeurs importants qui devraient être clairs pour un programmeur C ++ -

Sr.Non Concept et description
1 Pointeurs nuls

C ++ prend en charge le pointeur nul, qui est une constante avec une valeur de zéro définie dans plusieurs bibliothèques standard.

2 Arithmétique du pointeur

Il existe quatre opérateurs arithmétiques qui peuvent être utilisés sur les pointeurs: ++, -, +, -

3 Pointeurs vs tableaux

Il existe une relation étroite entre les pointeurs et les tableaux.

4 Tableau de pointeurs

Vous pouvez définir des tableaux pour contenir un certain nombre de pointeurs.

5 Pointeur à pointeur

C ++ vous permet d'avoir un pointeur sur un pointeur et ainsi de suite.

6 Passer des pointeurs aux fonctions

Le passage d'un argument par référence ou par adresse permet tous deux de modifier l'argument passé dans la fonction appelante par la fonction appelée.

sept Pointeur de retour des fonctions

C ++ permet à une fonction de renvoyer un pointeur vers une variable locale, une variable statique et une mémoire allouée dynamiquement.