引用
声明方法:
int main()
{
int A = 200;
int & newA = A; //引用初始化
newA = 90;
printf("A:%d\n",A);//A被赋值为90,操作newA 相当于操作A。
return 0;
}
本质相同:
int * newA = &A;//指针newA指向变量A的地址;
int & newA = A;//引用变量newA为A的地址。
区别:
指针:A *pa = &a;
pa->data =20;
pa->func();
引用:A &ra = a;
ra.data = 20;
ra.func();
1、指针可以不初始化,或初始化为空,引用不行。
2、引用不允许二次指向。
3、非大量内存操作时(例如数组),建议使用引用。
引用
与指针类似,相当于指针plus版
int &ra=a;
类中对象用指针需要用"->"来操作
A *pa=&a;
pa->data=20;
类中对象用引用时用"."来操作
A &ra=a;
ra.data=20;
二者其他区别:
引用必须有初始化值,指针可以赋值为nullptr
引用不可以二次赋值,指针则可以
1、引用可以认为是变量的别名**
2、引用和指针在编译器的汇编中是一样的,因此他们的功能很类似
3、用指针操作对象时,用的是 箭头操作符
在操作普通的变量时,用的是 点操作符
**而且,引用可以用的是 点操作符
4、引用必须赋值

引用和指针用法的区别。
引用和指针功能一样,引用必须要初始化,赋值nullptr。
int &ra = a;
引用只能指向一个地址,而指针可以变化自己的指向地址。