三道四。所以 n 既不是 m 的拷贝,也不是指向 m 的指针,其实 n 就是 m 它
自己。
引用的一些规则如下:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始
化)。
(2)不能有 NULL 引用,引用必须与合法的存储单元关联(指针则可以
是 NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变
所指的对象)。
以下示例程序中,k 被初始化为 i 的引用。语句 k = j 并不能将 k 修改成为 j
的引用,只是把 k 的值改变成为 6.由于 k 是 i 的引用,所以 i 的值也变成了
6.
int i = 5;
int j = 6;
int &k = i;
k = j
; // k 和 i 的值都变成了 6;
上面的程序看起来象在玩文字游戏,没有体现出引用的价值。引用的主要功
能是传递函数的参数和返回值。C++语言中,函数的参数和返回值的传递方式
有三种:值传递、指针传递和引用传递。
“
”
以下是 值传递 的示例程序。由于 Func1 函数体内的 x 是外部变量 n 的一
份拷贝,改变 x 的值不会影响 n
, 所以 n 的值仍然是 0.
void Func1(int x)
{
x = x + 10;
}
int n = 0;
Func1(n);
cout << “n = ” << n << endl;// n = 0
“
”
以下是 指针传递 的示例程序。由于 Func2 函数体内的 x 是指向外部变量
n 的指针,改变该指针的内容将导致 n 的值改变,所以 n 的值成为 10.
void Func2(int *x)
{
(* x) = (* x) + 10;