在一个函数里怎的才可以用到另一个函数里面的变量

在一个函数里怎样才可以用到另一个函数里面的变量
void add()
{ int i=0;
  int j=0;
  int choice;
  string bn;
Button BY[10];
Button BW[10];
cout<<"请你选择是否为它添加标题:1、是;2、否"<<endl;
cin>>choice;
switch(choice)
{
case 1:{
cout<<"请输入您要添加的Button名字:"<<bn<<endl;
Button NB(bn);
BY[i++]=NB;
break;
}
case 2: { 
Button NWB();
BW[j++]=NWB();
break;
}

}
}

void ListAllButton()
{
int k=0,w=0;
for(k=0;k<i;k++)
}

ListAllButton()中的i怎样才可以是add()中i?

------解决方案--------------------
C/C++ code

//直接传值进来
void ListAllButton(int i)
{
int k=0,w=0;
for(k=0;k<i;k++)
}

//然后在add中这样调用
ListAllButton(i);

------解决方案--------------------
你ListAllButton,那么所有Button也该是有记录的,直接去记录里查,要最新添加的Button,就标识下最新的按钮编号还是什么的
------解决方案--------------------
全局变量 或者传参.

------解决方案--------------------
探讨
全局变量 或者传参.

------解决方案--------------------
把i定义成全局变量不是就可以用了吗?
------解决方案--------------------
在ListAllButton中定义 i
定义add(&i)传递i的引用这样就ok了。