A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史龙贤 黑马帝   /  2012-8-20 23:10  /  2872 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能详细解释:指针跟引用有什么关系?
谢谢!

8 个回复

倒序浏览
指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;
而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
回复 使用道具 举报
java其实很多东西在内部都是用指针实现,指不过不让大家用而已。
引用就相当于别名
回复 使用道具 举报
1)引用必须被初始化,指针不必。
2)引用初始化之后不能被改变,指针可以改变所指对象
3)不存在指向空值的引用,但存在指向空值的指针。
回复 使用道具 举报
C中用指针传变量,在子函数中可接收为值,也可接收为值的地址,这就造成了一定的编程难度, 容易产生错误, 所以在JAVA中只保留了子函数只能接收值的用法, 并改名为引用.
回复 使用道具 举报
Java最基本的概念就是类,类包括函数和变量。如果想要应用类,就要把类生成对象,这个过程被称作“类的实例化”。有几种方法把类实例化成对象,最常用的就是“new”操作符。类实例化成对象后,就意味着要在内存中占据一块空间存放实例。想要对这块空间操作就要应用到对象的引用。如Object o=new Object().  意思为在栈内存中有个引用o,它指向Object实例化后在堆内存空间中的地址值。

回复 使用道具 举报
牛杨 中级黑马 2012-8-21 11:46:45
7#
这个问题 论坛里面有,你搜搜就知道了。
回复 使用道具 举报
李毅 注册黑马 2012-8-21 14:21:03
8#
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
回复 使用道具 举报
孙鑫 中级黑马 2012-8-21 15:54:00
9#
相同点:都是地址的概念
指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
区别:
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
4. 引用没有 const,指针有 const;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
7. 指针和引用的自增(++)运算意义不一样;
8.从内存分配上看:程序为指针变量分配内存区域,而引用不需要分配内存区域。

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马