这个代码为什么要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 的操作 ,就是对主函数里对应的 y 的操作。

int &n在函数里面是指引用,这里m和n用&和不用的区别,你观察一下输出的结果就可以发现啦