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

C-Gültigkeitsbereiche verstehen: Lokale, Globale & Formale Variablen

Ein Gültigkeitsbereich (Scope) in der Programmierung ist ein Bereich des Programms, in dem eine definierte Variable existiert und darauf zugegriffen werden kann. Darüber hinaus kann die Variable nicht mehr zugegriffen werden. In C gibt es drei Orte, an denen Variablen deklariert werden können:

Lokale Variablen

Variablen, die innerhalb einer Funktion oder eines Blocks deklariert werden, heißen lokale Variablen. Sie können nur von Anweisungen verwendet werden, die sich in derselben Funktion oder demselben Codeblock befinden. Lokale Variablen sind Funktionen außerhalb ihres eigenen nicht bekannt.

Beispiel

#include <stdio.h>
int main() {
    int a, b;
    int c;
    a = 10;
    b = 20;
    c = a + b;
    printf("Wert von a = %d, b = %d und c = %d\n", a, b, c);
    return 0;
}

Globale Variablen

Globale Variablen werden außerhalb einer Funktion definiert, normalerweise am Anfang des Programms. Sie behalten ihre Werte während der gesamten Lebensdauer des Programms bei und können in jeder der für das Programm definierten Funktionen aufgerufen werden.

Eine globale Variable kann von jeder Funktion aufgerufen werden. Das heißt, sie ist im gesamten Programm nach ihrer Deklaration verfügbar.

Beispiel

#include <stdio.h>

int g; // globale Variable

int main() {
    int a = 10, b = 20;
    g = a + b;
    printf("Wert von a = %d, b = %d und g = %d\n", a, b, g);
    return 0;
}

Ein Programm kann denselben Namen für lokale und globale Variablen haben, aber der Wert der lokalen Variable innerhalb einer Funktion hat Vorrang.

Beispiel: Namenskonflikt

#include <stdio.h>

int g = 20; // global

int main() {
    int g = 10; // lokal (verdeckt globale Variable)
    printf("Wert von g = %d\n", g); // gibt 10 aus
    return 0;
}

Ausgabe: Wert von g = 10

Formale Parameter

Formale Parameter werden als lokale Variablen innerhalb einer Funktion behandelt und haben Vorrang vor globalen Variablen.

Beispiel

#include <stdio.h>

int a = 20; // global

int sum(int a, int b) {
    printf("Wert von a in sum() = %d\n", a); // formaler Parameter a
    printf("Wert von b in sum() = %d\n", b);
    return a + b;
}

int main() {
    int a = 10; // lokal in main
    int b = 20;
    int c = 0;
    printf("Wert von a in main() = %d\n", a);
    c = sum(a, b);
    printf("Wert von c in main() = %d\n", c);
    return 0;
}

Ausgabe:

Wert von a in main() = 10
Wert von a in sum() = 10
Wert von b in sum() = 20
Wert von c in main() = 30

Initialisierung lokaler und globaler Variablen

Wenn eine lokale Variable definiert wird, wird sie nicht vom System initialisiert – Sie müssen sie selbst initialisieren. Globale Variablen werden automatisch vom System initialisiert:

DatentypStandard-Initialwert
int0
char'\0'
float0
double0
pointerNULL

Es ist gute Programmierpraxis, Variablen ordnungsgemäß zu initialisieren, andernfalls kann Ihr Programm unerwartete Ergebnisse liefern, da nicht initialisierte Variablen beliebige Werte (Müllwerte) an ihrer Speicherposition enthalten.

C Sprache

  1. Wesentliche Regeln für Reihenschaltungen: Strom, Widerstand und Spannung
  2. Parallelschaltungs-Grundlagen: Spannung, Widerstand und Strom-Regeln
  3. Wichtige Ableitungsregeln: Kurze Referenz
  4. Fundamentale Integrationsregeln: Konstanten, Summen und Differenzen
  5. C# Variablen & Primitive Datentypen meistern: Der komplette Guide
  6. Variablengültigkeitsbereich in C# verstehen: Klassen-, Methoden- und Blockebene
  7. C++-Variablen, Literale und Konstanten meistern: Ein umfassender Leitfaden
  8. C Variablen, Konstanten und Literale: Ein vollständiger Leitfaden
  9. C Speicherklassen verstehen: Gültigkeitsbereich, Lebensdauer und Performance
  10. Java Variablen und Literale: Umfassender Leitfaden