一、引用概念: 对变量起另外一个名字(外号),这个名称称为该变量的引用。
格式:
<类型> &<引用变量名> = <原变量名>;
其中原变量名必须是一个已定义过的变量。如:
int max ;
int &refmax=max;
refmax并
没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即
同一地址两个名字。
当&a的前面有类型符时(如int &a),它必然是对引用的声明;如果前面无类型符(如cout<<&a),则是取变量的地址。
对引用类型的变量,要注意以下几点:1、引用在定义的时候要初始化(且只能初始化一次)。
int &refmax;//错误,没有具体的引用对象
int &refmax=max;//max是已定义过的变量
2、对引用的操作就是对被引用的变量的操作。
3、引用类型变量的初始化值不能是一个常数。
4、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。
指针与引用的区别:1、指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量。
2、引用必须初始化,而一旦被初始化后不得再作为其它变量的别名。
二、引用的用途 引用的用途主要是用来作函数的参数或函数的返回值。
1.引用用来作函数参数
引用作函数的形参,实际上是在被调函数中对实参变量进行操作。
#include <iostream>
using namespace std;
void change(int &x,int &y) //x,y是实参a,b的别名
{
x=x^y;
y=x^y;
x=x^y;
}
int main(void)
{
int a=3,b=5;
change(a,b); //实参为变量
cout << "a=" << a << "\nb=" << b <<endl;
return 0;
}
|
运行结果:
zx@zhangxu:~/lianxi/c++$ ./test
a=5
b=3
|
2.函数的返回值为引用类型
可以把函数定义为引用类型,这时函数的返回值即为某一变量的引用(别名),因此,它相当于返回了一个变量,所以可对其返回值进行赋值操作。这一点类同于函数的返回值为指针类型 。
#include <iostream>
using namespace std;
int a=4;
int & f(int x)
{
a=a+x;
return a;
}
int main(void)
{
int t=5;
cout << f(t) << endl; // f(5)=4+5=9
f(t)=20; // a=20
cout << f(t) << endl; // f(5)=20+5=25,即a=25
t=f(t); // t=f(5)=a=25+5=30
cout << f(t) << endl; //f(30)=30+30=60
return 0;
}
|
运行结果:
zx@zhangxu:~/lianxi/c++$ ./test
9
25
60
|
阅读(1238) | 评论(0) | 转发(0) |