您的位置:首页 > 编程语言 > C语言/C++

c++变量的引用和指针

2016-07-22 15:05 423 查看
对变量的引用其实是为一个变量起一个别名。

常见的形式为:int &b = a; 该语句就声明b是a的引用

引用的实质:还是指针。声明b是a的引用,是在内存中为b开辟了一个指针型的存储单元,用来存放a的地址。输出b时,就输出b指向的a的值,就相当于*b。所以引用就是一个指针常量,只能指向一个指定的变量。

应用:将引用作为函数参数,实现参数传递方式中的地址传递方式。

举例:以最常见的两个变量交换为例

#include<iostream>
#include<math.h>
using namespace std;

void swap1(int *p1, int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}

void swap2(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}

int main()
{
int a,b;
a = 1;
b = 2;
swap1(&a,&b);
swap2(a,b);
cout<<a<<b<<endl;
return 0;
}


函数swap1的形参是指针变量,可以实现main函数中两个变量的交换。实参是地址,传递的也是地址,故这种函数参数传递的方式仍是“值传递”方式,只不过传递的是变量的地址罢了。

而函数swap2的形参是变量的引用,在参数传递时,使形参为实参的引用。实参是变量名,而传递的却是变量的地址,因此是传址方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: