因为最近想重新学习一遍数据结构,之前上大学的时候都是用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的话 还是刚刚开辟的内存的地址,因为内存中其实并没有实际内容