黑马程序员技术交流社区

标题: 指针跟引用有什么关系? [打印本页]

作者: 史龙贤    时间: 2012-8-20 23:10
标题: 指针跟引用有什么关系?
谁能详细解释:指针跟引用有什么关系?
谢谢!
作者: 刘芮铭    时间: 2012-8-20 23:50
指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;
而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。

作者: 王海亮    时间: 2012-8-21 01:59
java其实很多东西在内部都是用指针实现,指不过不让大家用而已。
引用就相当于别名
作者: 蒙武辉    时间: 2012-8-21 09:39
1)引用必须被初始化,指针不必。
2)引用初始化之后不能被改变,指针可以改变所指对象
3)不存在指向空值的引用,但存在指向空值的指针。
作者: 邢金华    时间: 2012-8-21 09:59
C中用指针传变量,在子函数中可接收为值,也可接收为值的地址,这就造成了一定的编程难度, 容易产生错误, 所以在JAVA中只保留了子函数只能接收值的用法, 并改名为引用.
作者: 侯林林    时间: 2012-8-21 11:19
Java最基本的概念就是类,类包括函数和变量。如果想要应用类,就要把类生成对象,这个过程被称作“类的实例化”。有几种方法把类实例化成对象,最常用的就是“new”操作符。类实例化成对象后,就意味着要在内存中占据一块空间存放实例。想要对这块空间操作就要应用到对象的引用。如Object o=new Object().  意思为在栈内存中有个引用o,它指向Object实例化后在堆内存空间中的地址值。


作者: 牛杨    时间: 2012-8-21 11:46
这个问题 论坛里面有,你搜搜就知道了。
作者: 李毅    时间: 2012-8-21 14:21
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。

作者: 孙鑫    时间: 2012-8-21 15:54
相同点:都是地址的概念
指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
区别:
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
4. 引用没有 const,指针有 const;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
7. 指针和引用的自增(++)运算意义不一样;
8.从内存分配上看:程序为指针变量分配内存区域,而引用不需要分配内存区域。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2