引用(&)
给已定义的变量取一个别名,两者用法相同。
int a =10; //定义一个变量a
int &c=a; //&符号放在定义时,不是取地址,而是引用。
//声明a的一个引用,c是a的一个别名
//a与c的地址是相同的
- 引用与指针不同
1.常量的引用
int &a=12; //会报错
const int &a=12; //可以这样修改
2.数组的引用
int arr[12];
int (&p)[12]=arr; //一定要加()
int arr2[2][3];
int (&p2)[2][3] = arr2;
3.引用与指针的区别
- 引用声明要初始化,指针不用
- 引用初始化后就不能再引用其它空间,指针还可以指向其它空间
- 引用不占内存空间,指针不占空间
- 引用效率更高(引用是对内存空间的直接操作,指针装的是地址,通过地址操作空间)
- 引用更加安全,指针可能偏移(指针可以做加运算指向下一个地址)
- 指针更加灵活,直接操作地址,C与C++都可以