C语言中指针与java

因为最近想重新学习一遍数据结构,之前上大学的时候都是用c语言实现的,但是其实在java源代码中例如ArrayList,LinkedLisk等这些类其实都是用数据结构的内容来实现的,所以我也准备用JAVA实现一遍这些数据结构的内容,但是在这之前把指针复习一下也是很有必要的,这之后写的代码我会上传到GITHUB上,供大家参考指点,第一次写博客,因为最近发现能把学习下来的东西积累一下也是很不错的,闲话不多说,开始!

C语言中:

Int a = 10;
Int *p;

&a 代表a的地址
Syso(&a);
得到结果为000002x

*p 代表指针p指向地址的的内容
*p = &a // 将a的地址赋给*p(指针变量),*p是指针指向a的地址
Syso(*p);
得到结果为 10
这里写图片描述

JAVA中

Student s1 = new Student();
Student s2 = s1;

s1 代表 s1 指向堆内存中开辟的一块空间 new Student
如果输出的话 结果为一串地址数字,虽然JAVA没有指针的概念但是跟C、C++中的概念不谋而合,我们暂且称它为java的指针s1(&s1)

s2 代表 s1的内容赋给s2,也就是说s1也同样指向刚才对内存中开辟的那块空间new Student,相当于c/c++中的(*s2 = &s1) 其实这么写并不准确
如果输出s2的话 还是刚刚开辟的内存的地址,因为内存中其实并没有实际内容
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值