C++:函数无法访问 main() 函数中定义的变量



为什么print((函数不能访问msg变量?

#include <iostream>
void print()
{
std::cout << msg << std::endl;
}
int main()
{
std::string msg{"Hello"};
print();
}
Error: 'msg' was not declared in this scope
这是因为您在main函数中声明的msg变量是局部变量,只能在main函数中访问。

您可以定义一个全局变量,以便从任何函数访问它,也可以将msg作为参数传递给print函数。

C++程序总是从main((函数开始执行。

因此,在主函数中,我们声明了一个名为msg的字符串类型变量,并将其用作调用print ()函数的参数。一旦发生这种情况,代码就会"退出"到print函数中,字符串变量就会打印到控制台中。

void print(std::string some_msg){
std::cout <<some_msg << std::endl;
}
int main()
{
std::string msg{"Hello"};
print(msg);
}

我希望这能澄清。

最新更新