传参和引用的一点启示

来源:互联网 发布:netbsd源码下载 编辑:程序博客网 时间:2024/06/02 17:40

转载自脚本之家  http://www.jb51.net/article/41048.htm



1:引用及其绑定的对象的关系:在数值上它们是联动的,改变你也就改变了我,改变我也就改变了你。事实上,访问对象和访问对象的引用,就是访问同一块内存区域。

int &x=v;  声明了一个引用,名字叫x.  这个规定要牢记!!!      printf("%d",x)和printf("%d",v)是一样的!!!!这种情况看,加上&是多此一举!!!!!! 这个时候输出&x,系统认为是输出一个地址!!!!

2:你在引用的声明语句里把一个引用绑定到某个对象后,这个引用就永远只能和这个对象绑定在一起了,没法改了。所以这也是我用了“绑定”一词的原因。而指针不一样。当在指针的声明语句里把指针初始化为指向某个对象后,这个指针在将来如有需要还可以改指别的对象。

3:无论这个对象有多复杂,使用该对象的引用或是使用该对象本身,在语法格式上是一样的,在本质上我们都使用了内存中的同一块区域。可以理解成&a=a;即变量的大名和小名

例如MyClass  myclass;
          Myclass& cc=myclass;
          myclass.a=20;          //等价于cc.a=20
          cc.a=60;               //等价于myclass.a=60

4:  :声明时必须初始化,既必须指明把引用绑定到什么对象上。大家知道指针在声明时可以先不初始化,引用不行。所以下列语句将无法通过编译:

例如  int a; int &x;  这样的编译是不行的,引用类型必须初始化,也就是“绑定”一个对象

5;取一个对象的地址和取这个对象的引用的地址,所得结果是一样的。        非常有特点的理解

6:用传递引用的方式给函数传递一个对象的引用时,只传递了该对象的地址,系统消耗较小。在函数体内访问    形参,实际是访问了这个作为实参的对象。

0 0
原创粉丝点击