您可以简单地在全局变量之前使用:: 或删除
long s;
从 main() 因为您在 main() 函数中声明局部变量 s 。尽管名称相同,但 Global s 和 local s 是不同的。让我们通过给局部变量和全局变量赋予不同的名称,通过以下示例了解更多信息。
#include <iostream>
long x; // global value declaration
void output() // don't want to pass argument
{
std::cout << x;
}
int main()
{
long s;
std::cin >> s; //here you are storing data on local variable s
output() // But here you are calling global variable x.
}
在 main() 函数中,s 是局部变量,x 是全局变量,您在 output() 函数中调用全局变量。如果你有相同的命名,你可以使用::(范围解析运算符)在 main 中调用 global x ,或者如果它们有不同的名称,则只需通过变量名调用它。
PS: 如果您有任何问题,请发表评论,希望这会对您有所帮助并了解错误所在。在此处阅读有关局部和全局变量范围的更多信息