注册 登录
编程论坛 C++教室

引用的问题.

mylzy159 发布于 2010-04-12 21:46, 478 次点击
  不是说 引用已经过初始化,引用的值就不能改变的么?
  那为什么引用做传参 做交换的时候又能行?..求说服力的答案.比如:
  void swapper(Data& dt1,Data& dt2)
{
  Date save;
  save=dt1;
  dt1=dt2;
  dt2=save;
}       引用不是不能改变值么?
4 回复
#2
debroa7232010-04-12 22:24
谁告诉你引用不能改变值的?
#3
mylzy1592010-04-12 22:36
...我好像被套了..这里的值好像是引用的变量...?.杯具.
   
#4
yyblackyy2010-04-12 22:43
不是说 引用已经过初始化,引用的值就不能改变的么?
是楼主理解错了!
例如: int a=34,c=23;
       int &b=a;                 b 是引用变量  a是被绑定的变量
        b=c;
*****************************
b是a引用而且要在初始化时指定      
b=c; 把c的值给b,也就是给a,而不是理解成b现在是c的引用
总结:引用变量一经初始化,那么就绑定了被引用的变量引用变量始终代表的是被引用的变量,这就是“不能改变”的真正含义
#5
hblikun2010-04-13 00:44
比如:
int a=10;
int &b=a;
b=100;
最后结果a的值就成了100!
引用变量b就好比是a的外号,都是指的同一个“人”,你通过外号b把那个人整容了,他还是a那个人= =
1