函数调用疑惑,该怎么解决

函数调用疑惑intbinarysearch(intt){intl,u,ml0u6while(lu){m(l+u)/2if(x[m]t)//这里说x没有定

函数调用疑惑
int   binarysearch(int   t)
{
int   l,   u,   m;
l   =   0;
u   =   6;
while   (l   <=   u)
{
m   =   (l   +   u)   /   2;
if   (x[m]   <   t)                 //这里说x没有定义,前面主函数中不是定义过了么?奇怪
l   =   m   +   1;
else   if   (x[m]   ==   t)
return   m;
else
u   =   m   +   1;
}
return   -1;
}
int   main()
{
int   x[7]   =   {3,   4,   5,   2,   8,   9};
cout < <   binarysearch(4) < <   endl;
cin.get();
return   0;
}

[解决办法]
//这里说x没有定义,前面主函数中不是定义过了么?奇怪
主函数内定义的?如果x不是全局变量,而是在主函数内定义的局部变量,那么该函数在binarysearch里是不可见的。每个函数有自己的栈,栈内的变量只能被该函数访问,所以binarysearch是访问不到主函数内定义的局部变量的
[解决办法]
int binarysearch(int t, int x[])
cout < < binarysearch(4, x) < < endl
改这两句