为什么要int&n,int n不可以吗?c++在什么情况下int&n

#include
using namespace std;
int f1(int m,int&n){
for(n=10;n<100;n++){

    if(n*n==m)break; 
}

if(n==100)return 0;
else return 1;

}

int f2(int x){
int p=x/100;
int q=x/10-p*10;
int r=x%10;
if(p!=q&&q!=r&&r!=p&&p<q&&q<r)return 1;
else return 0;
}

int main(){
int x=100,y;
for(x=100;x<1000;x++){
if(f1(x,y)==1&&f2(x)==1)
cout<<x<<"="<<y<<"^2"<<endl;
}
system("pause");
return 0;
}

f1函数里的n前面为什么有个&

f1函数里的n前面这个‘&‘ 符号,是引用的意思,在f1()函数里对 n 的操作 ,就是对主函数里对应的 y 的操作。