c++ 指针point 和引用reference的区别

如题所述

1.reference一定得代表某个对象,即reference必须有初值;而point没有这种要求,因此它可以有null pointers。

2.没有所谓得null reference意味着references可能会比使用pointers更有效率,因为使用reference之前不需要测试其有效性。

3.pointer可以被重新赋值,指向另外一个对象,而reference却总是指向它最初获得的那个对象,类似于常量指针。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-14
区别一:初始化
通过以下例子可以清晰的看出不同:

int a;

int *p=&a;\\&这里代表取址符,这里右边表达式实际上是完成一次取址过程。
int &q=a;\\&在这里是应用的定义标记,这里是不执行取址操作的。
这里需要注意引用必须初始化,否则会编译错误。指针不初始化不会编译错误,但是会不安全。
区别二:赋值语句
如果想对指针或引用指向的变量进行赋值,要调用如下语句:
a=C;
或者

*p=C;\\C代表一常量。
或者
q=C;
以上三句话执行的结果相同。
所以这里需要强调一句话作为对比,即:
p=C
这里并不是让p指向的变量a更新址,而是让p指向地址为C的空间,至于C是否具有访问权限就极不确定了。

C++中Reference与指针(Pointer)的使用对比
在我看来, 不能够对reference二次绑定作为reference与pointer的不同。并不比常量指针和非常量指针的不同更为显著。Null references除了显示的不同,常量指针与reference还有一点非常不同,那就是,一个有效的reference必须指向一个对象;而一个指针不需要。一个指针,即使是一个常量指针, 都可以有空值。 一个空指针不指向...

指针的与“引用”的区别
C++编程中指针与引用的区别一、指针和引用的区别(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也有可能不指向对象则必须使用 指针.由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值.String & rs = string1;由于没有所谓的 null reference 所以在使用...

【C++指针和引用的区别?】
指针与引用的区别主要体现在以下几个方面:首先,指针是一个变量,专门用于存储内存地址。通过指针的*运算符,可以访问和操作它所指向的内存位置。与此不同,引用是一个别名,它直接指向已存在的对象,不需要额外的内存空间。其次,空值(nullptr)对于指针而言是一个有效状态,表示它未指向任何有效对象。然...

C++中指针与引用的区别
指针与引用的区别有:引用的好处在于:引用实际上是指针常量的语法糖,为程序员带来了许多便利。在编写程序时,引用可以像变量自身一样使用,访问引用与访问对象从语法上看几乎相同,但实际上却进行了指针的高效操作。举个例子,使用者无需关心接收者的形式。摘自侯捷C++面向对象高级开发第五集中讲解传入\/...

C++面试常用问题:"引用"与指针的区别
程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是对函数传ref和pointer的区别。拓展阅读:引用:(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化。(4)引用声明完毕后...

初学C++关于Reference和Pointer的困惑
引用其实就是指向变量的别名,定义引用并没有开辟内存空间存储,而且必须要初始化,初始化后引用关系不能改变,和指针不同

C++中引用和指针的区别
1. 引用在语言内部用指针实现(如何实现?)。2. 对一般应用而言,把引用理解为指针,不会犯严重语义错误。引用是操作受限了的指针(仅容许取内容操作)。引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n 是m 的一个引用(reference),m是被引用物(referent)。int m;int &n...

C语言中指针和引用的区别
指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。这两个概念没有任何相关性。指针是实实在在的变量...

函数形参 引用和指针有什么区别
前面说过,引用只是个别名,它本身没有地址空间,因此传入的其实是a的地址。传入后,编译器对引用不做处理,因此在fun1函数体内,执行c++时,其实就是对a的值加一,编译后c其实就是a的地址,这就是引用作为形参的调用情况。虽然调用fun2,fun2的形参是指针变量,因此主函数中将p传入fun2,由于p是个...

引用类型的区别
引用和指针的区别 看实例吧:引用是C++中的概念,初学者容易把引用和指针混淆一起。下面的程序中,n是m的一个引用(reference),m是被引用物(referent)。int m;int &n = m;n相当于m的别名(绰号),对n的任何操作就是对m的操作。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它...

相似回答