C++引用和指针的区别
引用是一种更加安全的指针
1、引用必须初始化,指针可以不初始化;
2、由下图可以看出,定义一个指针和引用在汇编阶段是一模一样的;
通过引用变量修改所引用的内存的值和通过指针解引用修改指针指向内存的值,其底层指令也是完全一样的;>
3、引用只有一级引用,指针可以有一级指针和多级指针;
左值引用和右值引用
1、左值:有内存,有名字,值可以修改
2、右值:C++11新特性,没内存,没名字
3、右值引用:int &&c =20;//底层产生了一个临时量,然后把临时量的地址赋给右值引用;
4、右值引用变量本身是一个左值,只能用左值引用来引用他;
5、不能用一个右值引用变量来引用一个左值