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

Posted

技术标签:

【中文标题】C ++:函数无法访问main()函数中定义的变量[关闭]【英文标题】:C++: Function can't access variable defined in main() function [closed] 【发布时间】: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 【参考方案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 函数。

【讨论】:

以上是关于C ++:函数无法访问main()函数中定义的变量[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C语言20-static和extern关键字2-对变量的作用

请教高手,C语言中,把变量定义在主函数之外和定义在主函数之内有啥区别?

为啥 dolphindb 脚本中的函数无法访问外部范围内的变量

PHP中如何定义全局数组?

C语言中 变量作用域的区别

全局变量怎么定义