Zugriff auf Variablen aus einem beabsichtigten Block verschachtelter Blöcke [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Gibt es eine Möglichkeit, in C ++ auf eine lokale Variable im äußeren Gültigkeitsbereich zuzugreifen? 4 Antworten

Wie wird im folgenden Programm der Wert von aa aus Block A in Block C abgerufen? Wir können nur mit dem Bereichsauflösungsoperator auf den äußersten globalen Bereich zugreifen.

Bekannte Solutoins: 1. Verwenden Sie verschiedene Zeiger in verschiedenen Blöcken. 2. Verwenden Sie die Variable im übergeordneten Block, bevor Sie die Variable des aktuellen Blocks verwenden.

Ich suche nach einer anderen alternativen Lösung

Ich weiß, dass dies kein guter Code ist. Nur neugierig zu verstehen, wie man es erreicht.

#include <iostream>
#include <cstdio>

using namespace std;

// Global
int aa = 10;

int main()
{
    // Main
    int aa = 20;

    {
        // Block A
        int aa = 30;

        {
            // Block B
            int aa = 40;

            {
                // Block C
                int aa = 50;

                cout << "block C " << aa << endl;
                cout << "block A " << ????? << endl;
                cout << "global" << ::aa << endl;
            }

            cout << "block B " << aa << endl;
        }

        cout << "block A " << aa << endl;
    }

    cout << "main " << aa << endl;

    return 0;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage