c++ 指针和引用的区别
1 指针是指向一个地址,未初始化的指针没有分配内存,那么此时此时直接使用指针是危险的,所以在使用指针之前最好判断是否为空.
2 引用则是指向一个对象,对象必然是有地址的,那么此时,就不需要考虑指针的问题了。
例子:
指针: 引用:
int bb; int bb;
int *a; int& a = bb;
*a = bb;
c++ 左值引用和右值引用
左值就是有名字的对象,右值就是没有名字的对象.
在传递参数或者是赋值的时候,我们总是需要拷贝构造一个新的对象。如果原有对象资源占用比较大,并且,我们在函数中不会对其修改,我们可以直接传递一个引用过去,这样保证不需要重新申请一块空间去存储这个对象。
但是对于一个右值对象来说,出现之后,离开作用域就会被销毁,因此没有办法去使用左值引用的这个方法,所以,这个时候,使用右值引用(&&),此时等于使用一个新的变量指向其地址,然后,将其地址修改,因为右值对象自己会销毁自己。
例子:http://blog.csdn.net/xiaolewennofollow/article/details/52559306