最近我看到這個代碼cppreference:C++嵌套的作用域訪問
string str="global scope";
void main()
{
string str="main scope";
if (true){
string str="if scope";
cout << str << endl;
}
cout << str << endl;
}
,輸出:
if scope
main scope
這是好的,我明白了整個嵌套範圍的事情,我知道, if語句中的'str'將在語句結束時解除堆棧時被銷燬,所以在此之後它不會被使用,因此第二次打印將主'str'作爲它的參數。
但是,我知道主要'str'實際上在IF內部可用,或者至少應該是這樣,但問題是如何從IF語句內部訪問主'str'?
我怎樣才能從主內部和/或內部訪問全局'str'?
我知道使用不同的名稱會更簡單,但這個問題不是針對特定的實際應用,而是爲了更好地理解C++範圍。
cppreference永遠不會有 「無效的主要」。這甚至不會編譯。 – Cubbi
取決於您的編譯器 – J3STER
它不會在使用gcc和clang的cppreference.com上編譯。 – Cubbi