Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques

Que sont les pointeurs ?

Un pointeur en C++ est une variable qui stocke l'adresse mémoire d'une autre variable. Le type du pointeur doit correspondre au type de données vers lequel il pointe. Par exemple, un int* ne peut contenir que des adresses d'objets int.

Les pointeurs permettent à un programme de manipuler directement les données en mémoire, permettant des structures de données efficaces, l'allocation dynamique et la sémantique de passage par référence.

Comprendre les adresses mémoire

Chaque variable est allouée à un emplacement unique dans la RAM. L'opérateur de référence & récupère cette adresse. Pour une variable x, &x donne son emplacement mémoire.

Syntaxe de déclaration des pointeurs

Les déclarations suivent le motif :

type_donnee *nom_pointeur;

Exemples :

int *p; // pointeur vers int
double *d; // pointeur vers double
char *c; // pointeur vers char

Référence (&) vs. Déréférence (*)

L'opérateur & donne l'adresse d'une variable ; l'opérateur * récupère la valeur stockée à cette adresse.

#include <iostream>
using namespace std;
int main() {
    int x = 27;
    int *ip = &x;
    cout << "Value of x: " << x << endl;
    cout << "Address of x: " << ip << endl;
    cout << "Value via pointer: " << *ip << endl;
    return 0;
}

Sortie :

Value of x: 27
Address of x: 0x7ffeefbff5ac
Value via pointer: 27

Pointeurs et tableaux

Les noms de tableaux se convertissent en pointeurs vers leur premier élément. Par conséquent :

int arr[5];
int *p = arr; // correct
int *q = &arr; // incorrect – &arr donne l'adresse du tableau entier, pas son premier élément

Utiliser un pointeur pour itérer sur un tableau :

#include <iostream>
using namespace std;
int main() {
    int *p;
    int arr[] = {10, 34, 13, 76, 5, 46};
    p = arr;
    for (int i = 0; i < 6; ++i) {
        cout << *p++ << endl;
    }
    return 0;
}

Sortie :

10
34
13
76
5
46

Pointeurs nuls

Lorsqu'un pointeur n'a pas de cible valide, il doit être initialisé à NULL (ou nullptr en C++11 et versions ultérieures). Cela empêche la déréférence accidentelle.

#include <iostream>
using namespace std;
int main() {
    int *ip = nullptr;
    cout << "ip = " << ip << endl; // affiche 0
    return 0;
}

Utilisation des pointeurs dans les fonctions

Passer un pointeur à une fonction permet à la fonction de modifier la variable originale. Cette technique implémente le passage par référence.

#include <iostream>
using namespace std;
void modify(int *p1, int *p2) {
    *p1 = 10;
    *p2 = 11;
}
int main() {
    int a = 5, b = 5;
    cout << "Before: a=" << a << ", b=" << b << endl;
    modify(&a, &b);
    cout << "After: a=" << a << ", b=" << b << endl;
    return 0;
}

Sortie :

Before: a=5, b=5
After: a=10, b=11

Avantages des pointeurs

Résumé rapide

Langue C

  1. Les tableaux en C++ : Déclaration, initialisation et techniques avec pointeurs
  2. Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées
  3. Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques
  4. Maîtriser le type char en C++ : Déclaration, ASCII et techniques de conversion
  5. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  6. Les structures en C++ expliquées avec un exemple pratique
  7. Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques
  8. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques
  9. Maîtriser les Collections C# : Tutoriel Pratique avec Exemples Réels