在java的学习中我们没有了c语言中较为复杂的指针,既然没有了指针肯定会有其他的方法来实现指针所带来的作用,按照我的理解在一些功能的实现中引用有时候可以实现指针所带来的作用,然而毕竟是两个不同的定义所以两者之间肯定也有很多的区别和不同。
对于指针来说这是一个实实在在存在的实体,而引用却不是,是一个别名。引用只能在定义时被初始化一次,之后不可变,指针可变。指针和引用的自增(++)运算意义不一样,如
int a=0;
int b=&a;
int *p=&a;
b++;相当于a++;b只是a的一个别名,和a一样使用。p++;后p指向a后面的内存
(*p)++;相当于a++。
指针是可以进行与整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。
引用不行,只能进行赋值运算。
因为指针是实体,引用是别名所以程序为指针变量分配内存区域,而引用不需要分配内存区域。