引用的定义、使用及其和指针的区别与联系

引用

对一个数据可以建立一个“引用”,它的作用是为一个变量名起一个别名。

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;//声明ba的引用

cout <<&b<<endl;//输出b的地址,此时&a不是引用

在声明了引用后,在使用时不带&,而只用引用的名字(如b,而不是&b)

 例:程序中,k被初始化为 i的引用。语句k = j 并不能将 k修改成为j的引

只是把 k的值改变成为 。由于 ki的引用,所以i的值也变成了

int i = 5;

int j = 6;

int &k = i;

k=j; // k 和i的值都变成了 6;

引用和指针的区别与联系:

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

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页