【问题标题】:C++: Function can't access variable defined in main() function [closed]C ++:函数无法访问main()函数中定义的变量[关闭]
【发布时间】:2021-05-22 19:58:36
【问题描述】:

为什么 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

【问题讨论】:

  • 因为你不能,在 C++ 中?为什么您希望它以这种方式可以访问?
  • 你来自什么语言?
  • @KPCT 来自Python,昨天刚开始学C++。
  • 我不认为你可以在 Python 中做到这一点......
  • 你应该了解变量的作用域,有很多资料可以解释这一点,比如tutorialspoint.com/cplusplus/cpp_variable_scope.htm

标签: c++


【解决方案1】:

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

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

void print(std::string some_msg){
std::cout <<some_msg << std::endl;
}

int main()
{
    std::string msg{"Hello"};
    print(msg);
}

我希望这可以澄清。

【讨论】:

    【解决方案2】:

    这是因为您在main 函数中声明的msg 变量是一个局部变量,只能在main 函数中访问。

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

    【讨论】:

      猜你喜欢
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2018-05-23
      • 2015-08-04
      相关资源
      最近更新 更多