请看下面的代码示例:
考虑以下代码示例:
// line #
{ // 1
// 2
{ // 3
double test = 0; // 4
} // 5
// 6
double test = 0; // 7
} // 8
这会产生错误
一个名为'test'的局部变量无法在此作用域中声明,因为它会给'test'赋予不同的含义,而'test'已经在“子”作用域中用于表示其他内容
但我不明白为什么?外部的test变量从第7行开始,而不是第2行,那么在第4行声明一个作用域结束于第5行的第二个名为test的变量有什么问题呢?