1、引用是建立变量(操作对象)别名,引用声明和变量本身针对的是同一地址。引用声明例为:
int case;
int & citecase=case;
int*pcase=case;
上述语句使case和citecase代表同一变量,它地地址为定义case时分配的内存地址。以上述例子来说明,引用和指针的不同之处我们可以令指针*pcase指向其它变量,但是一旦声明了引用,citecase就只是代表case的一个引用,而不能将它仔用来代表其它变量。例如:
int case1;
*pcase=case; //right
&citecase=case; //error
2、引用传递函数参数
传递引用给函数与传递指针效果一样,传递的是原来的对象或变量,可以对其进行改变。但是要注意二者在调用函数的时候参数写法的区别。
例:
(1)指针传参
void Swap(int * a, int * b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(&x, &y); //采用取地址运算符传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int * a, int * b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
(2)引用传参
void Swap(int &a, int & b);
void main()
{
int x=5;
int y=6;
cout<<"now:"<<x<<y<<endl;
Swap(x, y); //引用传入地址
cout<<"later:"<<x<<y<<endl;
}
void Swap(int & a, int & b)
{
int temp;
temp=a;
a=b;
b=temp;
}
///////////////////////////////////////////////////////
1990

被折叠的 条评论
为什么被折叠?



