C++中指针和引用的区别、联系及实例

来源:互联网 发布:网络共享服务器 编辑:程序博客网 时间:2024/05/17 01:07

    实质,引用其实质是可用作其他变量的别名的一个名称,对引用的操作与对变量直接操作完全一样。;指针的实质是存储另一个变量地址的变量

    其区别主要体现在以下几个方面:

    1、引用(reference)时一个变量的别名,因此不占内存;而指针(point)是一个整形变量需要占用一定的内存大小,通常是以能够存放内存地址为标准,例如32位机器是32位及4个字节,64位是64位的,即8个字节;

    2、引用中&不是求地址运算,而是起标识作用;

    3、不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种数据类型,所以没有引用的引用,没有引用的指针,但可以建立指针的指针;  

例如:
int n;
int &&r=n;//错误,编译系统把"int &"看成一体,把"&r"看成一体,即建立了引用的引用,引用的对象应当是某种数据类型的变量
int &*p=n;//错误,编译系统把"int &"看成一体,把" *p "看成一体,即建立了指向引用的指针,指针只能指向某种数据类型的变量。
 

 

    引用与指针的相同之处:

   1、类型标识符都是指目标变量的类型;

   2、声明引用时,必须同时对其进行初始化,指针可以初始化为空,引用却不可以.