// Hinweis: Die hier aufgezeigte Lösung geht
// davon aus, dass ein long 4 Bytes lang ist
#include <print>

// char-Zeiger definieren
const char* pcPtr = nullptr;
// long Variable definieren und initialisieren
long lVar1 = 0x12345678L;

// main() Funktion
int main()
{
    // long Variable in Byte-Darstellung ausgeben
    // Zuerst die Adresse der long-Variablen im Zeiger ablegen
    pcPtr = reinterpret_cast<decltype(pcPtr)>(&lVar1);
    // long Wert ausgeben
    std::println("{:#x} liegt wie folgt im Speicher:", lVar1);
    // long Wert byteweise ausgeben
    std::println("{:#x},{:#x},{:#x},{:#x}",
        *(pcPtr), *(pcPtr + 1), *(pcPtr + 2), *(pcPtr + 3));

    // char-Zeiger auf den String "ABCD" setzen
    pcPtr = "ABCD";
    std::println("String ist: {}", pcPtr);
    // und nun die Zeichen durch Komma getrennt ausgeben
    std::println("Als Buchstaben: {},{},{},{}",
        *(pcPtr), *(pcPtr + 1), *(pcPtr + 2), *(pcPtr + 3));
}
