如果它们在不同的函数中,我可以重用相同的变量名吗?

时间:2016-07-17 15:50:26

标签: variables memory

我正在为游戏制作一个程序15拼图。 我的函数头看起来像这样:

void leftSlide(vector< vector<int> >& puzzle);
void rightSlide(vector< vector<int> >& puzzle);
void upSlide(vector< vector<int> >& puzzle);
void downSlide(vector< vector<int> >& puzzle);

我的主要功能还有一个vector< vector<int> > puzzle。我被允许这样做,还是会导致问题呢?

2 个答案:

答案 0 :(得分:1)

变量的范围在括号花括号内。例如,

void foo()
{
int x; // variable x is not known outside of foo
}

此范围规则甚至适用于参数列表中的变量。例如,

void boo (int y)
{
// variable y in not known outside of boo
}

因此,在您的情况下,变量将通过引用从主驱动程序传递到各个函数。所以,是的,您可以在不同的范围内使用相同名称的变量。

答案 1 :(得分:0)

只是是的

  

由块中的声明(复合语句)引入的变量的潜在范围从声明点开始,并在块的结尾处结束。实际范围与潜在范围相同,除非存在具有引入相同名称的声明的嵌套块(在这种情况下,嵌套声明的整个潜在范围将从外部声明的范围中排除)