1、前言:普通变量的引用
ElemType表示抽象数据类型,假设为int型。首先看个改变变量值的例子:
函数1:
void add(int x)
{
++x;
}
函数2:
void Add(int &x)
{
++x;
}
int main()
{
int x = 1;
add(x);
Add(x);
return 0;
}
很明显只有函数2才会改变x变量的值。
2、(*&T)的含义:指针的引用
如果要改变指针型变量,则需要写成如下形式:
void add(int *&p)
{
++p;
}
示例:
#include <iostream>
using namespace std;
void add(char *&p)
{
++p;
}
int main()
{
char *p = "Hello";
cout << "p = " << *p << endl;
add(p);
cout << "p = " << *p << endl;
return 0;
}
开始时指针p指向”Hello”中的H,调用add()函数后,指针p的值增1,指向e。
(*&T)的含义就是指针T的引用。