关于c中全局变量访问的问题
这是程序代码:
#include <iostream.h>
int n;
int min(int [],int);
void main()
{
int iArray[10]={34,91,83,56,29,93,56,12,88,72};
cout < <min(iArray,10) < <endl
< <n < <endl;
}
int min(int a[],int len)
{
n=4;
return n;
}
全局变量n在main中赋予3,在min函数中被赋予4,但是执行的结果是min的返回值是4,而n还是等于3,全局n到底在min中是否被修改了呢?
我又试着在程序中加了一个函数调用语句int c=min(iArray,10);发现这是所有的n都等于4,是不是说在用cout调用函数是全局变量不被调用函数修改呢?那函数的返回值为什么又是4而不是3呢?以下是改后的代码:
#include <iostream.h>
int n;
int min(int [],int);
void main()
{
int iArray[10]={34,91,83,56,29,93,56,12,88,72};
int c=min(iArray,10);
cout < <min(iArray,10) < <endl
< <c < <endl
< <n < <endl;
}
int min(int a[],int len)
{
n=4;
return n;
}
感谢您的赐教。我用的是vc6.0.
[解决办法]
全局变量n在main中赋予3
-------------------------------------
哪一行赋的?
[解决办法]
从右到左执行,所以n那时候还是3。
cout < <n < <endl
< <min(iArray,10) < <endl
< <c < <endl;
这样就应该是4了
[解决办法]
是从右到左执行的?
[解决办法]
全局变量n在main中赋予3
----------------------------
不知道你在那一行赋值的哦.
并且,真没搞清楚.你想问什么啊.
[解决办法]
果然是有顺序的,有人能给解释下吗,帮顶
[解决办法]
我的结果是4, 3
cout < <min(iArray,10) < <endl //你执行的这步,调用min后在min函数里局部变量n被变成4了
< <n < <endl; //到这里,n是全局变量,所以还是3,因为出了min函数范围了
不知道能听明白不,呵呵
[解决办法]
看程序有点累,呵呵,看了半天才发现Main函数中n并未设值~~~