首先二者的相同点是:
二者实质上都是对地址的操作,指针直接指向内存,引用则是变量的别名。
二者的区别是:
1.非空区别:
任何情况下都不允许一个指向空值的引用,即引用必须总是指向一个对象。指针允许指向NULL。
2.合法性:
使用引用之前不需要测试其合法性,指针总是需要检测其合法性,防止迷途指针的产生。
3.可修改性:
引用总是指向初始化时的对象,以后不能更改,指针可以重新赋值。引用不是值,不会占据内存空间,其只有声明,没有定义。
首先二者的相同点是:
二者实质上都是对地址的操作,指针直接指向内存,引用则是变量的别名。
二者的区别是:
1.非空区别:
任何情况下都不允许一个指向空值的引用,即引用必须总是指向一个对象。指针允许指向NULL。
2.合法性:
使用引用之前不需要测试其合法性,指针总是需要检测其合法性,防止迷途指针的产生。
3.可修改性:
引用总是指向初始化时的对象,以后不能更改,指针可以重新赋值。引用不是值,不会占据内存空间,其只有声明,没有定义。