以下是代码
#include <iostream>
using namespace std;
int main()
{
int x=5, y=6;
int out = x + y;
{
int out= 89;
cout << :: out << "\n";
}
cout << out;
}
我得到的
error: ‘::out’ has not been declared
12 | cout << :: out << "\n";
| ^~~
编辑:我原以为它会打印变量 out
,其值为 11(如 python 中的 nonlocal
),但我收到了错误。我该如何解决这个问题?
答案 0 :(得分:2)
没有全局变量out
,你必须在main之外声明一个全局变量,或者你可以简单地去掉范围解析运算符::
并打印out
的值>
#include <iostream>
using namespace std;
int main()
{
int x = 5, y = 6;
int out = x + y;
{
int out = 89;
cout << out << "\n";
}
cout << out;
}
如果要使用全局变量先改名
#include <iostream>
using namespace std;
int Globalout;
int main()
{
int x = 5, y = 6;
Globalout = x + y;
{
int Localout = 89;
cout << Localout << "\n";
}
cout << ::Globalout;
}