当前位置:首页 > 自我学习 > 正文内容

指针与引用区别(指针与引用的优缺点)

2023-03-25 19:54:05自我学习2

指针与引用的优缺点

在传递参数的过程中,值传递和引用传递有着明显的区别。在值传递中,参数的值被复制到函数的形式参数中,形式参数的改变并不会影响实际参数的值。而在引用传递中,形式参数的类型被指定为引用类型,实际参数的地址通过传递被复制到形式参数中,这样的话在函数中对形式参数的修改也会影响到实际参数的值。在值传递中,当函数中的参数值被修改时,不会影响到调用该函数时的实际参数的值;而在引用传递中,当函数中的参数被修改时,会同时修改调用该函数时的实际参数的值,从而造成实际参数的修改,因此值传递和引用传递的区别主要表现在参数值的传递方式和对实际参数的影响程度上。

指针和指针的引用

分析下字面意思吧:指针的变量 是一个指针类型的变量 变量的指针 是一个指向变量的指针

指针和引用哪个快

很好区分。 当&符用在定义或声明时,才表示引用。

用在表达式中,放在右值的左边作为一元操作符时就是取址符。

用在表达式中,做为二元操作符时就是逻辑与。

指针和引用这两种语言机制存在的主要意义

  

1.类型:引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。  

2.所占内存: 引用声明时没有实体,不占空间。C++指针如果声明后会用到才会赋值,如果用不到不会分配内存。  

3.类型转换:引用的类型转换,也可能不成功,抛异,或者IDE就不能通过。C++指针只是个内存地址,指向那里,对程序来说还都是一个地址,但可能所指的地址不是程序想要的!  

4.初始值:引用初始值为java关键字null。C++指针是INT,如不初始化指针,那他的值就不是固定的了。  

5.计算:引用是不可以计算的。C++指针是INT,所以他可以计算,所以经常用指针来代替数组下标。  

6.控制:引用不可以计算,所以他只能在自己程序里,可以被控制。C++指针是内存地址,也可以计算,所以他有可能指向了一个不归自己程序使用的内存地址,对于其他程序来说是很危险的,对自己程序来说也是不容易被控制的。  

7.内存泄露:JAVA引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。  

8.作为参数:JAVA的方法参数只是传值,引用做为参数使用时候,回给函数内引用的值的COPY,所以在函数内交换两个引用参数是没意义的,因为函数只交换的参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象是和引用参数是同一个对象。C++指针做为参数给函数使用,实际上就是他所指的地址在被函数操作,所以函数内用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数,等等)。  

9.操作符和声明:java里用"."。C++指针用"->" 用"*"声明指针。(似乎这条没什么用!)  

10.本质:java中的引用和C++中的指针本质上都是想通过一个叫做引用或者指针的东西,找到要操作的目标(变量 对象等),方便在程序里操作。所不同的是JAVA的办法更安全,方便些,但没有了C++的灵活,高效。  java中的引用和C++中的指针,他们最好不要混在一起,也不要认为是一回事,只不过他们的作用有些相似,总叫人不自觉的对比。但在我们写JAVA程序的时候最好忘记C++的指针,写C++程序的时候,也不要老惦记着JAVA的引用。只要记得引用无大小,安全,不可计算,强转时要小心就好了。参考

http://blog.csdn.net/b271737818/article/details/3931913

  

指针和引用的使用场景

  引用,一个变量的别名,为什么引入别名呢?原因是我们想定义一个变量,他共享另一个变量的内存空间,使用别名无疑是一个好的选择。变量是什么?是一个内存空间的名字,如果我们给这个内存空间在起另外一个名字,那就是能够共享这个内存了,引用(别名)的由此而来。   指针,指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的内存空间。  二者区别: 引用访问一个变量是直接访问,而指针是间接访问。   引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。   引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个   内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值.   例如   int i = 3,j = 4;   int &x = i;//成为i的别名   x = j;//不能否认x仍然引用i,并没有成为j的别名,只是修改了x和j共享的内存空间的值.   这点与指针不同,指针在任何时刻都可以改变自己的指向

指针 引用区别

指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。

引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。这两个概念没有任何相关性。

指针是实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量。

引用是一种形式、方法,定义的引用变量,实际上是原实际变量的另一个名称(别名),引用变量本身没有自己的实际存储空间,操作引用变量,就是在操作实际变量。如:

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98756698.html