关键区别-指针和引用
在讨论指针和引用之间的区别之前,让我们先简单地看看这两个术语的含义。在程序中,数据占主导地位内存.存储器的确切位置数据放置在执行时应该知道以便访问它们。指针变量而且引用变量用于访问这些数据并操作它们所在的内存地址。也就是说,指针和引用都可以用来间接引用对象。它们本质上将内存地址作为它们的值。的关键的区别指针和引用之间是这样的指针是一个变量,它存储另一个变量的内存位置的地址而一个引用是指引用另一个变量的变量。这两个机制,的指针和引用,有不同的语法和用法.
什么是指针?
一个指针是一种编程语言对象,用于存储值的内存地址在计算内存中。
在c++语法;
Int I = 5;
Int *ptr = &i;
第一行定义了一个初始值为5的变量。第二行定义了指向变量的内存地址。在这里,' ptr '被声明为一个类型为'指针int '的对象,其初始值是对象i的地址。本质上,ptr变量通过存储其指向i内存地址.
获取存储在内存位置的值被调用非关联化.*操作符用于解除对指针的引用。声明完成后,间接表达式*ptr对ptr解引用,使其指向i。
要改变i的值,可以使用下列赋值;
* ptr = 20;
指针也可以被重新赋值以引用不同的对象。
一个空指针是一种特殊类型的指针。空指针通常用0或null表示,不指向任何东西。在没有给指针分配确切地址的情况下,使用空指针是一个很好的实践。这种赋值可用于逻辑操作和条件。
指针可以用于存储和管理动态分配的内存地址.数据结构的实现和控制,例如栈、队列而且列表可以用指针来提高效率。例如,一个队列可以有两个指针;头指针和尾指针。指针还可以通过地址传递变量,这样就可以改变变量的值。直接操作内存或内存映射设备也可以通过使用指针来处理。
指针允许对寻址内存进行受保护和不受保护的访问。因此,必须采取必要的预防措施来验证指针的内容是否有效。否则,对具有无效内存地址的指针解引用可能会导致程序崩溃。
指针在C、c++、Pascal等语言和许多汇编语言中都受支持。
什么是引用?
引用只是一个存储在内存中的值的替代标识符.它使程序能够间接地访问特定的数据。
在c++语法;
Int I = 5;
int ref =我;
第一行定义了一个初始值为5的变量。第二行声明' ref '为引用i的' reference to int '类型的对象。如果引用实现为物理地址存储在内存中的特定数据。
引用一旦定义,就不能重新赋值。引用总是指向初始化它的对象。在下面的赋值中,ref仍然指向i,但现在的值是20。
ref = 20;
根据上面的例子,解除引用不需要任何操作符。
当变量总是引用对象时,可以使用引用。这是因为,与指针不同,引用不能为空,并且必须始终在初始化时赋值。由于引用必须总是引用某个对象,因此将这样的变量作为引用可以确保程序高效和正确地工作。如果没有空引用,那么引用变量的有效性就不需要测试。
引用变量可以是用于有效地将大数据作为参数传递给程序.引用还用于在不同代码区域之间共享大型数据,因为每个代码都保留对数据的引用。
c++、Java、Python、Perl、PHP、Ruby等编程语言都支持引用。
指针和引用的区别是什么?
指针和引用的定义
指针:指针是存储在计算内存中的对象的内存地址。
参考:引用是对象的替代标识符或别名。
指针和引用的特性
宣言
指针:指针用*操作符声明。
参考:使用&操作符声明引用。
非关联化
指针:指针变量需要解引用*操作符。
参考:引用变量不需要解引用操作符。
初始化
指针:指针可以初始化为空。这样的变量被称为空指针。
参考:引用不能初始化为空。没有空引用这种东西。引用必须始终指向对象。
工作分配
指针:指针变量可以被重新赋值以引用不同的对象。
参考:引用变量不能重新赋值。它总是引用初始化它的对象。
使用
指针:指针变量应该在不存在引用任何东西的可能性或需要在不同时间引用不同事物时使用。
参考:当总是有一个对象可引用,并且不需要使用该引用变量来引用该对象以外的任何其他对象时,就应该使用引用变量。
应用程序的使用
指针:指针变量可用于实现算法和数据结构。
参考:引用变量可以在函数参数中使用,而返回类型定义了有用的接口。
使用语言:
指针:编程语言如C、c++、Pascal和许多汇编语言都支持指针。
参考:c++、Java、Python、Perl、PHP、Ruby等编程语言都支持引用。
图片来源: 该文件由User:SvenTranslation创建。自己的工作。这个矢量图是用Inkscape创建的。(3.0 CC冲锋队)通过下议院- - - - - -
留下一个回复