相同标示符的新声明会将外面的声明隐藏起来,而内部的作用域无法看见外面语句块中所声明的变量或函数
double x; //声明一个变量x,具有文件作用域
long calc(double x); //声明一个新的x,具有函数原型作用域
int main()
{
long x=calc(2.5); //声明一个long变量x,具有语句块作用域
if(x<0)
{
Float x=0.0F; //声明一个新的浮点变量x,具有语句块作用域
/*…*/
}
x*=2; //x还是long变量
}
Main()函数内的long变量x,会把类型为double的变量x隐藏起来,因此,在main()中无法直接存取double变量x,而且在if条件语句块中,x引用新声明的float变量,这又隐藏long变量x。
|