我正在为游戏制作一个程序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
。我被允许这样做,还是会导致问题呢?
答案 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)
只是是的
由块中的声明(复合语句)引入的变量的潜在范围从声明点开始,并在块的结尾处结束。实际范围与潜在范围相同,除非存在具有引入相同名称的声明的嵌套块(在这种情况下,嵌套声明的整个潜在范围将从外部声明的范围中排除)