变量的全局作用域,请求
根据下面的说法,我用VC++6.0得到的应该是6,6,但是我得到的却是6,0;都被搞糊涂了呀,请大侠指教!全局作用域:
对于具有全局作用域的变量,我们可以在程序的任何位置访问它们。当一个变量是在所有函数的外部声明,也就是在程序的开头声明,那么这个变量就是全局变量。
void add(int);
int num;
main()
{
int n=5;
add(n);
printf("%d\n",num); /*输出6*/
}
void add(num) /*形式参数没有指定类型*/
{
num++;
printf("%d\n",num); /*输出6*/
}
上面的main()和add()里面,并没有声明num,但是在最后输出的时候却要求输出num,这是由于在程序的开始声明了num是全局变量,也就是在所有函数里都可以使用这个变量。这时候一个函数里改变了变量的值,其他函数里的值也会出现影响。上面的例子输出都是6,因为在add()函数里改变了num的值,由于num是全局变量,就好象它们两个函数共用一个变量,所以在main()函数里的num也随之改变了。