引用
对一个数据可以建立一个“引用”,它的作用是为一个变量名起一个别名。
int a;
int &b=a;//使变量b具有变量a的地址
注意:
1.引用不是一种独立的数据类型,对引用只有声明,没有定义;
2.声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量;
3.在声明一个引用后,不能再使之作为另一变量的引用
int a1,a2;
int &b=a1;
int &b=a2; (错误)
4.不能建立引用数组
int a[5];
int &b[5]=a; (错误)
int &b=a[0]; (错误)
5.不能建立引用的引用,也没有引用的指针
6.可以取引用的地址
7.区别引用声明符&和地址运算符&
int &b=a;//声明b是a的引用
cout <<&b<<endl;//输出b的地址,此时&a不是引用
在声明了引用后,在使用时不带&,而只用引用的名字(如b,而不是&b)
引用和指针的区别与联系:
1.引用只能在定义时初始化一次,之后不能改变指向其他变量(从一而终),指针变量的值可变;
2.引用必须指向有效的变量,指针可以为空;
3.Sizeof指针对象和引用对象的意义不一样。Sizeof引用得到的是所指向的变量大小,而Sizeof指针是对象地址的大小;
4.指针和引用的自增(++)、自减(- -)意义不一样;
5.引用比指针更安全。
例:实现两个变量的值互换,用“引用”作形参
程序:
#include<iostream>
using namespace std;
int main()
{
void swap(int &, int &);
int i = 3, j = 5;
cout << "i=" << i << " " << "j=" << j << endl;
swap(i, j);
cout << "i=" << i << " " << "j=" << j << endl;
system("pause");
return 0;
}
void swap(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
结果:
i=3 j=5
i=5 j=3
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1754471
原文:http://yaoyaolx.blog.51cto.com/10732111/1754471