相同点:都指向同一内存空间
不同点:1、引用在初始化后不能再被重新声明为另一变量的别名,而指针变量可执行任意地址空间;[引用初始化不可变,而指针可变]
2、引用只是与数据的一种联系,自身不占有内存空间,指针在不同操作系统及编译环境下占有不同内存空间
3、指针是可以进行与整数做加减运算的,两个指针之间也可以进行大小比较运算,而引用只能进行赋值运算
附:java的方法参数只能传值,引用做参数使用时,返回
Example:
引用版:void f(&a)
{
a=&b;//企图使a改变成b的别名,错误
}
f(c);
指针版:void f(*a)
{
a=&b;
}
f(&c);
附:c++引用和java引用有所区别,而java引用类似与c++指针,php引用类似与c++引用java引用版:void f(A a)
{
a=A(3);
}
f(c);