引用就是变量的另一个名字: 引用必须初始化,无空引用,无等级.
int a = 10;
int &b = a; <=> int* const b = &a; 两句等价 , const后跟b说明b的值(a的地址)不能改变, 而a指向的值可以改变,
引用与指针在编译时的方法一样,都是指向变量的地址.
不同点:
1.在定义时: 引用存储的是值,而指针时一个变量的拷贝,存储的是地址.
2.引用只能对已经存在的变量或者是对象实现引用,而指针不需要,可以为空
3.函数传参中,如果传的是引用,意味着这个变量或者对象已经存在,
如果传递的是一个指针,则不能判断该指针是否有效,是不是为空, 所以引用比较安全,但是指针效率更快一点.
4.引用时直接访问变量,不分配自己的内容空间, 指针是间接访问,需要自己的内存空间.
网友评论