焦作到郑州高铁时间表:C++中指针和引用有什么区别?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 17:30:28

楼上的兄弟讲了这么多!
其实总结起来就几点:
(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针.
由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值.
String & rs = string1;
由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是否有值.,而使用指针则需要测试其的有效性.
(2)指针可以被重新赋值而reference则总是指向最初或地的对象.
(3)必须使用reference的场合. Operator[] 操作符 由于该操作符很特别地必须返回 [能够被当做assignment 赋值对象] 的东西,所以需要给他返回一个 reference.
(4)其实引用在函数的参数中使用很经常.
void Get***(const int& a) //这样使用了引用有可以保证不修改被引用的值
{
}

引用只是一个变量的别名,程序中的应用不占据实际的内存空间,而指针则是一个数值,其意义就是被指向数据所存放的内存地址,而指针同样也是一个数据,他的存放需要占据内存空间。

使用引用来代表其它变量时,对于整个程序而言会更加安全。而使用指针可以使得整个程序更加灵活。

很简单的区别,指针也有自己的存储空间,只不过是他指象的是一个地址,也就是他的存储空间里放的是地址.
但是引用就是一个变量的别名,给 同一个空间起了来个名字.