我在学习C++时遇到了一个问题,其中函数中的局部变量被传递给另一个函数中具有相同名称的局部变量,这两个函数都在main()中运行.
当这个运行时,
#include <iostream>
using namespace std;
void next();
void again();
int main()
{
int a = 2;
cout << a << endl;
next();
again();
return 0;
}
void next()
{
int a = 5;
cout << a << endl;
}
void again()
{
int a;
cout << a << endl;
}
Run Code Online (Sandbox Code Playgroud)
它输出:
2
5
5
Run Code Online (Sandbox Code Playgroud)
我期望again()会说null或0,因为'a'再次在那里声明,但它似乎使用了'a'在next()中赋值的值.
为什么next()将局部变量'a'的值传递给again()如果'a'再次在again()中声明?