关于C++用“引用”作函数形参的有关问题

关于C++用“引用”作函数形参的问题
//求3个正整数中的最大数,用带有默认参数的函数实现。

#include <iostream>
using namespace std;

int max(int a, int b, int c) 
//上面一句如果写引用这样就错了 int max(int &a, int &b, int &c) 
{
if(a<b) a=b;
if(a<c) a=c;
return a;
}

int main()
{
int max(int =2, int =5, int =1);

int x,y,z;

cin>>x>>y>>z;

cout<<"the max is:"<<max(x,y,z)<<endl;
cout<<"the max is:"<<max(1,3)<<endl;
cout<<"the max is:"<<max()<<endl;

return 0;
}

//请高手解答一下,为什么这个函数形参不能用---引用---


------解决方案--------------------
你这里的关键不是不能用引用,而是你应该重新定义一个变量用来保存最大值,最好不要修改a b c的值,其实用不用引用都可以。引用还不太明白的话看看http://www.jizhuomi.com/software/43.html吧。
------解决方案--------------------
形参初始化时会出错,你用2,5,1这种常量初始化非const引用显然出错,而且非const引用做形参会改变实参。
int max(const int &a,const int &b,const int &c)定义成这样也会出错,因为你的函数中可能修改实参。
所以这个函数不用引用最好。