指针和引用

1. 首先明确:引用本质是const指针,编译时引用被转化成指针。深入分析C++引用

int& r;
//等价于
int* const r;

2. 由于是const类型,所以不能为空,而且初始化有且仅有一次,初始化之后不可更改指向的对象。

int* p=NULL;
int& r=*p;
//可以通过编译,但使用r时会崩溃

3. 引用占据空间,且大小跟指针一样

class A{
    char& r;
};

int main(){
    cout<<sizeof(A)<<endl;//输出4,char*占4字节
}

 

4. 多态中,父类的引用可以指向子类对象,如果说引用是别名怎么说的过去呢?

5. sizeof(引用)是指向对象的大小,sizeof(指针)是指针本身大小

6. 有多级指针(int** p),没有多级引用

posted @ 2017-03-22 14:25  poluner  阅读(112)  评论(0编辑  收藏  举报