写函数的时候经常需要使用引用传参,为了能够修改传入的值,但是下面的这种情况特别需要注意,这样写出的函数不能达到修改的作用。
int func(double & ra,double &rb)
{
a++;
b++;
}
int a=2,b=4;
func(a,b);//由于函数参数不匹配,编译器自动进行type cast,将转换后的值赋给一个匿名变量,在把ra,rb分别设为两个匿名变量的引用,但是这样函数就起不到直接修改数据的功能了。
cout<<a<<'\t'<<b<<endl;