#include <print>

// 2 short Variablen definieren/initialiseren
short nVar1 = 10, nVar2 = 20;
// short Zeiger definieren
decltype(nVar1)* pnPtr;
// const char Zeiger definieren
const char* pszText;

// main() Funktion
int main()
{
    // Inhalt der short Variablen ausgeben
    std::println("nVar1: {}, nVar2: {}", nVar1, nVar2);
    // Zeiger auf die zweite short Variable setzen
    pnPtr = &nVar2;
    // Über den Zeiger der Variablen nVar2 den Wert von nVar1 zuweisen
    *pnPtr = nVar1;
    // nVar2 zur Kontrolle ausgeben
    std::println("nVar2 nach Zuweisung ueber Zeiger: {}", nVar2);
    // Und jetzt noch die Adressen der beiden short Variablen ausgeben
    std::println("nVar1 hat die Adresse: {}\n"
        "nVar2 hat die Adresse: {}",
        reinterpret_cast<void*>(&nVar1), reinterpret_cast<void*>(&nVar2));

    // Zeiger auf einen String setzen und String dann ausgeben
    pszText = "String";
    std::println("pszText zeigt auf {}", pszText);
}
