C++指针和引用

引用很接近const指针

引用其实就是变量的别名 他不能脱离变量而存在

声明引用时必须要初始化引用 不能声明空引用

引用变量存放的是被引用对象的地址

引用变量在功能上等于一个常量指针,一旦指向某一个地址单元,就不能指向别处了

指针允许寻址,即&p返回指针p的地址,而引用不允许寻址,&r返回被引用对象的地址,被引用对象直接用r表示

凡是使用了引用变量的代码都可以转化成指针的形式,只是代码会更加繁琐。(由于引用的限制,一些常量指针能做到的事,引用却做不到——数组元素允许是指针常量,却不允许是引用

引用使用时无需解引用(*)但指针需要

sizeof()引用变量得到被引用对象大小,而sizeof()指针只能得到指针变量本身的大小

引用不能为空 指针可以为空

(++)对引用和指针含义不同 对引用是对被引用对象的值++ 对指针是本身的地址++

指针是对象,占据内存;引用不是,不一定占据内存。(引用是否占内存标准中并没有规定,可以视它为指针常量,并且在编译器优化后它不占内存)

对于class T

{

public: int a;

}

在函数里面 void fun(class T& a)传了一个对象a 可以使用.(成员运算符)来访问对象里的成员,如a.a;  void fun(class T* a)传对象的指针,使用->(间接运算符)来访问对象里的成员a->a;

 

posted @ 2021-01-29 23:56  SjYu  阅读(84)  评论(0)    收藏  举报