Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C-Programmierung: Adressen & Zeiger an Funktionen übergeben – Praxisleitfaden

C-Programmierung: Adressen & Zeiger an Funktionen übergeben

Meistern Sie, wie man Speicheradressen und Zeiger an Funktionen in C übergibt, mit klaren Beispielen und Experten-Erklärungen.

In C lässt das Übergeben einer Adresse statt eines Werts eine Funktion die ursprüngliche Variable direkt manipulieren. Diese Technik, Zeigerübergeben genannt, ist essenziell für effizienten Code und das Modifizieren von Daten über Gültigkeitsbereiche hinweg.

Beispiel 1: Zwei Integer per Referenz vertauschen

#include <stdio.h>
void swap(int *n1, int *n2);
int main(void) {
    int num1 = 5, num2 = 10;
    /* Adressen von num1 und num2 übergeben */
    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;
}

Die Ausführung dieses Programms ergibt:

num1 = 10
num2 = 5

Die swap()-Funktion empfängt die Zeiger n1 und n2, die auf die ursprünglichen num1- und num2-Variablen zeigen. Durch Dereferenzieren dieser Zeiger (*n1 und *n2) vertauscht die Funktion die tatsächlich im Speicher gespeicherten Werte, weshalb main() die aktualisierten Zahlen sieht. Beachten Sie, dass swap() void zurückgibt, da es seine Argumente direkt modifiziert.

Beispiel 2: Wert über einen Zeiger inkrementieren

#include <stdio.h>
void addOne(int *ptr) {
    (*ptr)++; /* Wert an der gegebenen Adresse inkrementieren */
}
int main(void) {
    int i = 10;
    int *p = &i;
    addOne(p);
    printf("%d", *p); /* Gibt 11 aus */
    return 0;
}

Hier hält p die Adresse von i. Die addOne()-Funktion empfängt dieselbe Adresse, dereferenziert sie und inkrementiert den zugrunde liegenden Wert. Nach dem Aufruf spiegelt *p (und folglich i) den neuen Wert 11 wider.

Diese Beispiele veranschaulichen die Kraft des Zeigerübergebens: Funktionen können Variablen außerhalb ihres Gültigkeitsbereichs verändern, was effiziente Datenmanipulation ohne unnötiges Kopieren ermöglicht.

C Sprache

  1. C# Keywords und Identifiers verstehen: Regeln, Listen und Best Practices
  2. C# Bitweise und Bit-Shift-Operatoren meistern: Umfassender Leitfaden
  3. C# Klassen & Objekte: Fundamente für robustes OOP
  4. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  5. C# Partielle Klassen und Methoden verstehen
  6. Versiegelte Klassen und Methoden in C# meistern
  7. Arrays an Funktionen in C übergeben: 1D & 2D – Praxisleitfaden
  8. C-Zeiger meistern: Praxisnahes Experten-Tutorial
  9. Beziehung zwischen Arrays und Zeigern in C verstehen
  10. C-Structs und Zeiger meistern: Praxisleitfaden