这是因为您在
为什么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);
}
我希望这能澄清。