值类型和引用类型区别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

值类型和引用类型区别
“引用”(reference)是c++的一种新的变量类型,是对c的一个重要补充。

它的作用是为变量起一个别名。

假如有一个变量a,想给它起一个别名,可以这样写:
inta;int&b=a;
这就表明了b是a的“引用”,即a的别名。

经过这样的声明,使用a或b的作用相同,都代表同一变量。

在上述引用中,&是“引用声明符”,并不代表地址。

不要认知为“把a的值诗赋给b的地址”。

提及类型的数据存储在内存的堆中,而内存单元中只放置堆上中对象的地址。

声明提及并不开拓内存单元,b和a都代表同一变量单元。

注意:在声明引用变量类型时,必须同时使之初始化,即声明它代表哪一变量。

在声明一个变量的引用之后,在本函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名。

看看实例吧:
引用是c++中的概念,初学者容易把引用和指针混淆一起。

下面的程序中,n就是m的一个提及(reference),m就是被提及物(referent)。

intm;
int&n=m;
n相当于m的别名(绰号),对n的任何操作就是对m的操作。

所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。

(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。

(2)无法存有null提及,提及必须与合法的存储单元关联(指针则可以就是null)。

(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

以下示例程序中,k被初始化为i的提及。

语句k=j并不能将k修改成为j的引用,只是把k的值改变成为6。

由于k就是i的提及,所以i的值也变为了6。

inti=5;
intj=6;
int&k=i;
k=j;//k和i的值都变为了6;。

相关文档
最新文档