Code zur Sitzung Funktionen und Zeiger

Funktionen und Zeiger

#include <iostream>

using namespace std;

// Funktionsdeklaration
// ToDo: Erstelle eine Funktion, die einen Eingabewert quadriert und auf der Konsole ausgibt
void printQuadrat(int eingabeZahl);

// Call by value: Wert wird übergeben und kopiert, um in der Funktion verwendet zu werden
int returnQuadrat(int eingabeZahl);

int main() {

    int zahl;

    cout << "Bitte geben Sie eine Zahl ein, die quadriert werden soll: ";
    cin >> zahl;

    // Funktionsaufruf
    printQuadrat(zahl);

    cout << endl << "returnQuadrat: " << returnQuadrat(zahl);

    return 0;
}

// Funktionsdefinition
// Rückgabewert Funktionsname (Funktionsparameter) { Funktionsrumpf }
void printQuadrat(int eingabeZahl) {

    // Funktionsrumpf

    // Gültigkeitsbereich der Variable:
    int ergebnis = eingabeZahl * eingabeZahl;

    cout << ergebnis;
}

int returnQuadrat(int eingabeZahl) {
    return eingabeZahl * eingabeZahl;
}

Eine Swap-Funktion

#include <iostream>
using namespace std;

// ********************************
// Deklaration
// ********************************
void swapNumbers(int *schmitz, int *backes);        // keine Rueckgabe, 2 uebergeb. int-Zeiger

// ********************************
// Hauptfunktion
// ********************************
int main() {

    int x = 0, y = 15;        // Variablen x und y deklarieren und definieren

    cout << "vorher:  "       // optional: x und y ausgeben
         << x
         << " "
         << y
         << endl;

    cout << "Adresse von x im Arbeitsspeicher: " << &x;

    cout << endl;

    cout << "Zeiger auf die Adresse von x im Arbeitsspeicher: " << *&x;

    cout << endl;

    // Adressen von x und y an swap uebergeben
    swapNumbers(&x, &y);

    cout << "nachher: "
         << x
         << " "
         << y
         << endl;

    return 0;
}

// ********************************
// Definition
// ********************************
// swap erwartet Zeiger auf int

// Call by reference
void swapNumbers(int *schmitz, int *backes) {

    // eine tmp-Variable deklarieren
    int temp;

    // uebergebene Variablen (eigentlich: deref.Zeiger) mit Hilfe von temp tauschen
    temp = *schmitz;

    cout << "Temp hat den Wert: " << temp << endl;

    *schmitz = *backes;
    *backes = temp;
}