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语言中,把变量定义在主函数之外和定义在主函数之内有啥区别?