标签:修改 实参 amp ++i 调用 turn return 注意 end
例题 1
int f(int i)
{
return ++i;
}
int g(int &i)
{
return ++i;
}
void main()
{
int a,b;
a=b=0;
a+=f(g(a)); 这里一个是引用 一个是普通的调用 先执行g(a) g(0)-> 1 同时修改了a的值=1 f(1)->2 a+=2 a=a+2 注意此时的a已经变为了1 所以最后得到 a = 3
b+=f(f(b)); 这里是普通的函数,只改了形参,不影响实参,f(b)=1 但是此时的a还是0,f(1) = 2 a+=2 a=a+2 此时的a=0 所以得到的 a=2
cout<<"a="<<a<<" b="<<b<<endl;
}
例题2
int &max(int &x,int &y)
{
return (x>y?x:y);
}
void main()
{
int n=2,m=10;
max(n,m)--; 这里执行后到结果是 10 但是-- 后返回的是实参y 也就是 m = 10-- = 9
cout<<”n=”<<n<<”,m=”<<m<<endl; //得到的结果是 n=2,m=9
}
标签:修改 实参 amp ++i 调用 turn return 注意 end
原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12763286.html