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

Programmation C : Passage d'adresses et de pointeurs aux fonctions – Guide pratique

Programmation C : Passage d'adresses et de pointeurs aux fonctions

Maîtrisez le passage d'adresses mémoire et de pointeurs aux fonctions en C, avec des exemples clairs et des explications d'expert.

En C, passer une adresse au lieu d'une valeur permet à une de manipuler directement la variable originale. Cette technique, appelée passage par pointeur, est essentielle pour un code efficace et pour modifier des données à travers les portées.

Exemple 1 : Échange de deux entiers par référence

#include <stdio.h>
void swap(int *n1, int *n2);
int main(void) {
    int num1 = 5, num2 = 10;
    /* Passage des adresses de num1 et num2 */
    swap(&num1, &num2);
    printf("num1 = %d\n", num1);
    printf("num2 = %d", num2);
    return 0;
}
void swap(int *n1, int *n2) {
    int temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

L'exécution de ce programme produit :

num1 = 10
num2 = 5

La fonction swap() reçoit les pointeurs n1 et n2 qui pointent vers les variables originales num1 et num2. En déréférençant ces pointeurs (*n1 et *n2), la fonction échange les valeurs réelles stockées en mémoire, c'est pourquoi main() voit les nombres mis à jour. Notez que swap() retourne void car elle modifie ses arguments directement.

Exemple 2 : Incrémentation d'une valeur via un pointeur

#include <stdio.h>
void addOne(int *ptr) {
    (*ptr)++; /* Incrémente la valeur à l'adresse donnée */
}
int main(void) {
    int i = 10;
    int *p = &i;
    addOne(p);
    printf("%d", *p); /* Affiche 11 */
    return 0;
}

Ici, p contient l'adresse de i. La fonction addOne() reçoit cette même adresse, la déréférence et incrémente la valeur sous-jacente. Après l'appel, *p (et par conséquent i) reflète la nouvelle valeur 11.

Ces exemples illustrent la puissance du passage par pointeur : les fonctions peuvent altérer des variables définies en dehors de leur portée, permettant une manipulation efficace des données sans copie inutile.

Langue C

  1. Comprendre les mots-clés et identificateurs C# : règles, listes et bonnes pratiques
  2. Maîtriser les opérateurs bit à bit et de décalage en C# : Guide complet
  3. Classes et objets C# : Fondations pour une POO robuste
  4. Maîtriser les classes et méthodes abstraites C# : Guide pratique
  5. Comprendre les classes et méthodes partielles C#
  6. Maîtriser les classes et méthodes sealed en C# : Quand les utiliser, exemples clairs et sécurité du code
  7. Comment passer des tableaux 1D et 2D aux fonctions en C – Guide pratique
  8. Maîtriser les pointeurs en C : Tutoriel pratique guidé par des experts
  9. Comprendre la relation entre les tableaux et les pointeurs en C