C++语言程序设计

在同一源文件中，允许全局变量和局部变量同名。在局部变量的作用域内，全局变量不可见，不过，使用全局运算符::可以访问到全局变量。

| 例5-20

#include <iostream.h>
int l=3,w=4,h=5;
int vs(int l,int w)
{
int h=3;
int v;
v=l*w*::h;
return v;
}
void main()
{
int l=5;
cout<<"v="<<vs(l,w)<<endl;
}

本例程序中，外部变量l、w和vs函数的形参l、w同名。外部变量都作了初始赋值，main函数中的局部变量l也作了初始化赋值。执行程序时，在cout语句中调用vs函数，实参l的值应为main中定义的l值，等于5，外部变量l在main内不起作用；实参w的值为外部变量w的值为4，进入vs后，这两个值传送给形参l、w，在vs函数中定义了一个与全局变量h同名的局部变量h，但是由于使用了全局运算符"::"，因此这里访问的是全局变量h，其值为5，因此v的计算结果为100，返回主函数后输出。