Grundlagen der C-Programmierung: Funktionen, Zeiger & Dateien

Informatik2,6 KB

Funktionen in C

Void-Funktionen bieten eine Möglichkeit, Prozeduren zu emulieren, wie sie in anderen Sprachen (z. B. PASCAL) existieren. Sie werden eingesetzt, wenn kein Rückgabewert benötigt wird. Hier ist ein Beispiel, das die Quadrate bestimmter Zahlen ausgibt:

void quadrat() {
    int counter;
    for (counter = 1; counter < 10; counter++) {
        printf("%d\n", counter * counter);
    }
}

int main() {
    quadrat();
    return 0;
}

Input- und Output-Parameter

Um Parameter als In/Out-Parameter zu verwenden, müssen die formalen Parameter durch ein Kaufmanns-Und (&) gekennzeichnet werden. Die aktuellen Parameter müssen dabei Variablen sein (keine Ausdrücke). Diese Parameter werden verwendet, wenn eine Prozedur den Inhalt der übergebenen Variable ändern soll. Da sie auf die Speicheradresse der Variable verweisen, nennt man sie auch Referenzparameter.

void wurzeln(float a, float b, float c, float &R1, float &R2) {
    float value = sqrt(b * b - 4.0 * a * c);
    R1 = (-b + value) / (2.0 * a);
    R2 = (-b - value) / (2.0 * a);
}

Strukturen (struct)

Eine Struktur ist eine Möglichkeit, verschiedene Variablen unter einem Namen zu gruppieren. Man kann mehrere Instanzen dieses neuen Typs erstellen.

struct Struktur1 {
    char c;
    int i;
    float f;
    float d;
};

int main() {
    Struktur1 s1, s2;
    s1.c = 'a';
    s1.i = 1;
    s1.f = 3.14;
    s1.d = 0.00093;
}

Zeiger

Ein Zeiger ist eine spezielle Variable, die Speicheradressen speichert. Um einen Zeiger auf einen Integer zu erstellen, verwendet man den Stern-Operator (*).

int A;    // Integer-Variable
int *pA;  // Zeiger auf Integer

Dateiverarbeitung

C definiert die Datenstruktur FILE in der Header-Datei stdio.h für die Dateiverarbeitung. Man verwendet stets Zeiger auf diese Strukturen.

  • FILE *fopen(char *name, char *mode): Öffnet oder erstellt eine Datei.
  • size_t fwrite(...): Schreibt Datensätze konstanter Länge.
  • size_t fread(...): Liest Datensätze konstanter Länge.
  • int fclose(FILE *file): Schließt eine Datei und leert den Puffer.

Beispiel: Dateiinhalt zweimal ausgeben

#include <stdio.h>

int main() {
    FILE *file = fopen("datei.txt", "r");
    if (file == NULL) return 1;
    while (!feof(file)) fputc(fgetc(file), stdout);
    rewind(file);
    while (!feof(file)) fputc(fgetc(file), stdout);
    fclose(file);
    return 0;
}

Herunterladen

PDF Word HTML