1、引用和指针在汇编代码上其实是一样的,但是引用相比指针更安全的。
2、在C++中引用是需要初始化的,相当于变量的别名;而指针则没有明确要求初始化。
3、引用有右值引用。右值引用其本身作为左值而不能引用左值,而它引用的是一个常量。
#include<iostream>
int main()
{
int m = 10;
int *p = &m;
//指针 , &表示取地址
int &a = m;
//&表示引用
int &&z = 20;
//右的引用
}
代码分析:*p指向的是m的地址,可以通过对*p赋值而改变mde值;&a引用的也是m的地址,相当于m的别名,通过a可以改变m的值;这里的引用初始化,是因为引用需要一个带有地址和类型的变量;右值引用(&&z)本身作为左值,不能去引用一个带有地址的左值;在汇编中是给20一个临时量(tmp),在引用临时量的地址。