指针,全称为指针变量,是用来存储销册内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。
引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,亏饥宏通过这个肢纤别名来引用实际的变量。标准C中不支持变量的引用。
这两个概念没有任何相关性。
指针是实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量。
引用是一种形式、方法,定义的引用变量,实际上是原实际变量的另一个名称(别名),引用变量本身没有自己的实际存储空间, *** 作引用变量,就是在 *** 作实际变量。
如:
一、指针:
1.指针的定义:
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言丛桐中,如C语言。高层的语言如Java一般避免用指针,而是引用。
指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。
2.* 和 &符号
这个时候能改变a的值,而
改为
就无法改变a的值。
在执行inc(&a)时,系统在内存分配表里增加了一行“inc 中的val”,其地址为新地址,值为&a。 *** 作*val,即是在 *** 作a 了。
二.引用
1.引用的定义:
(1)引用就是某个目标变量的“别名”,对应用的 *** 作与对变量直接 *** 作效果完全相同。
(2)申明一个引用的时候,切记要对其进行初始化。
2.引用的特点:
(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的 *** 作就是对其相应的目标对象(在主调函数中)的 *** 作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是困郑胡直接对实参 *** 作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用汪拦引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)