您的位置: turnitin查重官网> 计算机 >> 计算机数据库 >指针基于C++引用和指针用法

指针基于C++引用和指针用法

收藏本文 2024-02-22 点赞:3238 浏览:8531 作者:网友投稿原创标记本站原创

摘要:c语言的精华和灵魂是“指针”,但运用的时候却比较容易出错。c++又引入了“引用”的概念,然而在使用过程中很难分清楚它们之间的区别,本文结合编程实例,简单分析了引用和指针的

摘自:本科毕业论文评语www.udooo.com

不同之处。
关键词:C++;引用;指针
1007-9599 (2013) 02-0000-02
指针和引用看起来完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但他们似乎都有同样的功能。指针和引用都是让你对其他对象的实现间接引用。你如何决定在何时使用指针,在何时使用引用呢?首先,我们必须要认识到在任何情况下都不能使引用的指向为空值。一个引用必须总是指向某些对象。因此,如果你定义一个变量并让它指向一个对象,但是该变量在某些时候也可以不指向任何对象,这时你应该把变量声明为指针,因为指针可以为空值。相反,如果变量必须指向一个对象,例如你的设计不允许变量为空,这时你就应该把变量声明为引用。

1 指针和引用的概念

指针其实是一个特殊的变量,它里面存储的本质上是一个内存地址。弄清指针需要了解指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。C++语言规定可以在程序中定义整型变量、实型变量和字符型变量等,也可以定义一种特殊的变量,专门用于存放变量地址。通过变量b找到变量a的地址,再根据这个地址找到变量 a,这就是我们所说的“间接访问”方式。由于通过地址能找到所需的变量单元,所以可以说,地址“指向”该变量单元。一个变量的地址称为该变量的“指针”。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。
引用:引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。引用的定义方法与定义指针相似,只是用&代替了*。例如:Point p1 (4,4);Point &p2=p1; 定义了p1为p1的引用。引用在定义时必须立即被初始化,因为引用只是某个东西的同义词。

2 指针与引用的存储方式

2.1 指针变量的存储方式(编译执行)

2.2 引用变量的存储方式(编译执行)

3 对象指针和对象引用作函数的参数

3.1 对象指针作函数的参数

使用对象指针作为函数参数要经使用对象作函数参数更普遍一些。因为使用对象指针作函数参数有如下两点好处:
(1)实现传址调用。可在被调用函数中改变调用函数的参数对象的值,实现函数之间的信息传递。
(2)使用对象指针实参仅将对象的地址值传给形参,而不进行副本的拷贝,这样可以提高运行效率,减少时空开销。
当形参是指向对象指针时,调用函数的对应实参应该是某个对象的地址值,一般使用&后加对象名。

3.2 对象引用作函数参数

4 总结
相同点:都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。
不同点:
(1)指针变量在逻辑上是独立的,可以改变它所指向的地址和其指向的地址中所存放的数据,即指针可以“见异思迁”。而引用它在逻辑上不是独立的,引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(即引用“从一而终)。
(2)引用不能为空,指针可以为空;“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小。
(3)引用没有const,指针有const,const的指针不可变;(具体指没有int& const a这种形式,而const int& a是有的,前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变。
参考文献:
付丽.c++指针的分析与使用技巧[J].河北工业科技,2000,08.
郭远飞.c++指针编程中的几个常见问题[J].今日科苑,2009,11.
[3]马宇哲.c++指针应用的四大误区[J].电脑编程技巧与维护,2010,04.
[4]马先春.c指针使用中的几个问题[J].宿州师专学报,2001,05.
[作者简介]黄雁,女,汉族,36岁,讲师,本科,研究方向:计算机应用。

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号