生活实例:
我们可以按“会议室”,这个名字找到开会的地方,也可以按地址“1105”号房找到它。1105是地址,换句话说,1105所指的房间就是会议室。你也可以给这个会议室起个别名。(别名就是引用)
例如:变量a的地址是“2205”,则2205所指存储单元就是a。
1、定义理解
指针:
C++中,指针访问运算符“*”。例如,*(2205)相当于变量a的名访问。但是我们如何去知道2205这个地址那?取址运算符是“&”。
实例:
&a//变量a的地址(指针)
*(&a)//a的地址所指的对象
指针的定义
引用:
引用:C++允许为对象定义别名,成为“引用”。
引用定义
引用的规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
2、引用和指针工程中应用(1)非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让他指向一个对象,但是该变量在某些时候也可能不指向任何对象,这是你应该把变量声明为指针,因为这样你可以赋予空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。不存在指向空值得引用这个事实意味着使用引用的代码效率比使用指针要高。
(2)合法性区别。在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。
(3)可修改区别。指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象。但是引用则是总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。
(4)应用区别。总的来说,在以下情况下你应该使用指针:一是你考虑到存在不指向任何对象对象的可能(在这种情况下,你能够设置指针为空),二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。
分享到:
相关推荐
在 C++ 编程语言中,指针和引用是两个常用的概念,但是初学者容易混淆它们二者之间的区别。在本文中,我们将从概念、函数参数传递和编译角度来阐述指针和引用的区别。 概念上,指针是一个变量,它存放的是变量的...
在C++编程语言中,指针和引用是两种非常重要的概念,它们都用来间接访问内存中的对象,但各自有着独特的特性和用途。了解并熟练掌握它们的区别对于编写高效、安全的代码至关重要。 首先,让我们来看指针。指针是C++...
C++ 中指针和引用有什么区别详解 1.从内存上来讲 系统为指针分寸内存空间,而引用与绑定的对象共享内存空间,系统不为引用变量分配内容空间。 2指针初始化以后可以改变指向的对象,而引用定义的时候必须要初始化,...
C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。 1.指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量...
在 C++ 中,指针的运算主要包括赋值(`=`)、取地址(`&`)、解引用(`*`)以及指针的算术运算(如加减)。取地址运算符 `&` 用于获取变量的地址,而解引用运算符 `*` 则用于访问指针所指向的变量的值。指针的算术...
在C++编程语言中,指针和引用都是用来间接访问内存中对象的重要工具...理解并熟练掌握指针和引用的区别,有助于写出更加清晰、健壮的C++代码。在编程实践中,根据场景合理选择使用它们,可以提高程序的可读性和维护性。
C++中指针和引用的区别详解 pointer和reference是C++中两个重要的概念,许多开发者对其区别不甚了解,导致编写的代码出现BUG,或者出现不必要的性能损失。下面,我们将详细介绍pointer和reference的区别。 1. ...
与指针不同,引用没有解引用操作符,因为引用在使用时就是它所引用的对象。引用也不支持`NULL`值,确保了它始终指向一个有效的对象。`sizeof`运算符用于引用时,返回的是引用所引用对象的大小,而不是引用本身的大小...
DEVC++是一款基于Windows平台的轻量级C/C++集成开发环境,由Bloodshed Software开发。这个工具提供了源代码编辑器、编译器、调试器等组件,方便初学者和专业开发者进行C语言编程。在DEVC++中,指针是C语言中极其重要...
在C++编程语言中,指针和引用是两种非常重要的概念,它们都涉及到变量的间接访问,但在实际使用中有着显著的区别。以下是关于指针和引用的详细分析: 1. **概念上的区别** - **指针**:指针是一个变量,它存储的是...