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
C语言中指针与java_第1张图片

JAVA中

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

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

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

你可能感兴趣的:(C语言)